httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@covalent.net>
Subject Re: .asis handler isn't driven
Date Mon, 01 Oct 2001 15:20:42 GMT
From: "Greg Ames" <gregames@remulak.net>
Sent: Monday, October 01, 2001 9:44 AM


> ...  daedalus's config file contains
> 
>  AddHandler send-as-is asis  
> 
> That says that if /search.html is requested, and file
> <docroot>/search.html.asis exists, it is a match and it to be served by
> the handler who understands the "send-as_is" string (mod_asis's
> handler), without interference from other modules.  That no longer
> happens.  We cannot put this code into production until it is fixed.

This is the patch that would negotate handlers and filters.

We still have no mechanism to 'quantify' the quality of one handler or
filter over another.  Funny that

index.html  4000 bytes
index.cgi    500 bytes

will serve index.cgi, based on size, when the cpu impact of index.html is
_significantly_ less expensive ;)

Bill

Index: modules/http/mod_mime.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/http/mod_mime.c,v
retrieving revision 1.63
diff -u -u -1 -0 -r1.63 mod_mime.c
--- modules/http/mod_mime.c 2001/09/08 05:50:12 1.63
+++ modules/http/mod_mime.c 2001/10/01 15:15:44
@@ -778,32 +778,35 @@
             /* The following extensions are not 'Found'.  That is, they don't
              * make any contribution to metadata negotation, so they must have
              * been explicitly requested by name. 
              */
             if (exinfo->handler && r->proxyreq == PROXYREQ_NONE) {
                 r->handler = exinfo->handler;
+                found = 1;
             }
             /* XXX Two significant problems; 1, we don't check to see if we are
              * setting redundant filters.    2, we insert these in the types config
              * hook, which may be too early (dunno.)
              */
             if (exinfo->input_filters && r->proxyreq == PROXYREQ_NONE) {
                 const char *filter, *filters = exinfo->input_filters;
                 while (*filters 
                     && (filter = ap_getword(r->pool, &filters, ';'))) {
                     ap_add_input_filter(filter, NULL, r, r->connection);
                 }
+                found = 1;
             }
             if (exinfo->output_filters && r->proxyreq == PROXYREQ_NONE) {
                 const char *filter, *filters = exinfo->output_filters;
                 while (*filters 
                     && (filter = ap_getword(r->pool, &filters, ';'))) {
                     ap_add_output_filter(filter, NULL, r, r->connection);
                 }
+                found = 1;
             }
         }
 
         if (found)
             found_metadata = 1;
         else
             *((const char **) apr_array_push(exception_list)) = ext;
     }



Mime
View raw message