www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Riedy <...@cise.ufl.edu>
Subject mod_negotiation/649: Adding a little cachability to HTTP/<=1.0 type-map responses...
Date Sun, 01 Jun 1997 06:50:01 GMT

>Number:         649
>Category:       mod_negotiation
>Synopsis:       Adding a little cachability to HTTP/<=1.0 type-map responses...
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache (Apache HTTP Project)
>State:          open
>Class:          change-request
>Submitter-Id:   apache
>Arrival-Date:   Sat May 31 23:50:01 1997
>Originator:     ejr@cise.ufl.edu
>Organization:
apache
>Release:        1.2b11
>Environment:
SunOS iguana 5.5 Generic sun4m sparc SUNW,SPARCstation-10
>Description:
If type maps are set to issue a redirect instead of performing an
internal redirect, proxies should be able to cache the result.  This
doesn't really make sense for MultiViews because of the extra extension,
but type maps deal with normal URIs.

I added a ``RedirectPre1.1TypeMappedDocs'' option (ugly lookin', but I
couldn't think of a better name) and twiddled the machinery in 
handle_map_file.

If the rcsdiff patch doesn't translate for some reason, it's also at
http://www.cise.ufl.edu/~ejr/mod_negotiation.c.patch.

Yeah, this is kinda silly, but who knows how long it'll be before other
browsers use HTTP/1.1...
>How-To-Repeat:

>Fix:
138c138,140
<     return (get_module_config (s->module_config, &negotiation_module) != NULL);
---
>     return (strncmp (get_module_config (s->module_config,
> 					&negotiation_module),
> 		     "Cache", 5) == 0);
140a143,158
> const char *redirect_typemapped_docs (cmd_parms *cmd, void *dummy,
> 				      char *dummy2)
> {
>     void *server_conf = cmd->server->module_config;
> 
>     set_module_config (server_conf, &negotiation_module, "Redir");
>     return NULL;
> }
> 
> int do_redir_typemapped_docs (server_rec *s)
> {
>     return (strncmp (get_module_config (s->module_config,
> 					&negotiation_module),
> 		     "Redir", 5) == 0);
> }
> 
145a164,165
> { "RedirectPre1.1TypeMappedDocs", redirect_typemapped_docs, NULL,
>     RSRC_CONF, RAW_ARGS, NULL },
1850c1870
<     
---
> 
1882a1903,1904
>     res = OK;
> 
1887,1888c1909,1917
<     if (!do_cache_negotiated_docs(r->server) && (r->proto_num < 1001))
<         r->no_cache = 1;
---
>     if (r->proto_num < 1001) {
>         /* If the mapping is through redirection, the result is
>          * cachable.
>          */
>         if (do_redir_typemapped_docs(r->server))
> 	    res = HTTP_MOVED_TEMPORARILY;
>         else if (!do_cache_negotiated_docs(r->server))
>           r->no_cache = 1;
>     }
1898,1900c1927,1935
<     internal_redirect(pstrcat(r->pool, udir, best->file_name, r->path_info,
<                               NULL), r);
<     return OK;
---
>     if (OK == res)
>         internal_redirect(pstrcat(r->pool, udir, best->file_name,
> 				  r->path_info, NULL), r);
>     else
>         table_set (r->headers_out, "Location",
> 		   pstrcat(r->pool, udir, best->file_name, r->path_info,
> 			   NULL));
> 
>     return res;
%0
>Audit-Trail:
>Unformatted:



Mime
View raw message