You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2001/12/18 16:09:47 UTC

cvs commit: apache-1.3/src/modules/standard mod_negotiation.c

wrowe       01/12/18 07:09:47

  Modified:    src/modules/standard mod_negotiation.c
  Log:
    Revert the code causing lost path_info/query_args.
  
    The potentially correct solution is to test the URI with recombined
    path_info and args, but I'd rather see this reverted for 1.3 and
    corrected in 2.0 with appropriate optimizations and user testing.
  
  Revision  Changes    Path
  1.110     +13 -2     apache-1.3/src/modules/standard/mod_negotiation.c
  
  Index: mod_negotiation.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_negotiation.c,v
  retrieving revision 1.109
  retrieving revision 1.110
  diff -u -r1.109 -r1.110
  --- mod_negotiation.c	2001/10/03 22:35:19	1.109
  +++ mod_negotiation.c	2001/12/18 15:09:47	1.110
  @@ -2710,8 +2710,19 @@
        */
       ap_pool_join(r->pool, sub_req->pool);
       r->mtime = 0; /* reset etag info for subrequest */
  -    r->uri = sub_req->uri;
  -    r->args = sub_req->args;
  +    /* XXX: uri/args/path_info are all retained from the original request.
  +     *      It is entirely possible, but not common, for a handler to choke
  +     *      on some expectation based on the uri (or more commonly, args) that 
  +     *      the file subrequest was prepared to handle, but a lookup_uri would
  +     *      have considered an error.  This leaves an improbable possibility 
  +     *      that the user might fail a mod_dir request later, and the server 
  +     *      may respond with a mod_autoindex response.  However, this has been
  +     *      the behavior throughout much of the Apache 1.3 era with minimal
  +     *      side effects, mostly caused by obscure configuration bugs.
  +     *  r->uri = sub_req->uri;
  +     *  r->args = sub_req->args;
  +     *  r->path_info = sub_req->path_info;  
  +     */
       r->filename = sub_req->filename;
       r->handler = sub_req->handler;
       r->content_type = sub_req->content_type;