]> granicus.if.org Git - apache/commitdiff
This will probably fix recent breakage to mod_negotation and httpd.test,
authorWilliam A. Rowe Jr <wrowe@apache.org>
Tue, 16 Oct 2001 01:57:45 +0000 (01:57 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Tue, 16 Oct 2001 01:57:45 +0000 (01:57 +0000)
  as well as the /manual/ returning docroot/index.  Need to look for another
  solution.  I'm suspecting path_info is possibly broken.

  Reverts 1.68, as suggested by Brian Havard.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91479 13f79535-47bb-0310-9956-ffa450edef68

server/request.c

index 008dc657a7c7835ffd83cf0db8f12b30e935d7ca..61a6f040d46c07294296a85c580aeded27575511 100644 (file)
@@ -1366,6 +1366,7 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *dirent,
     request_rec *rnew;
     int res;
     char *fdir;
+    char *udir;
 
     rnew = make_sub_request(r);
     fill_in_sub_req_vars(rnew, r, next_filter);
@@ -1383,12 +1384,15 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *dirent,
      * not even have to redo access checks.
      */
 
+    udir = ap_make_dirstr_parent(rnew->pool, r->uri);
+
     /* This is 100% safe, since dirent->name just came from the filesystem */
+    rnew->uri = ap_make_full_path(rnew->pool, udir, dirent->name);
     rnew->filename = ap_make_full_path(rnew->pool, fdir, dirent->name);
     if (r->canonical_filename == r->filename)
         rnew->canonical_filename = rnew->filename;
     
-    rnew->uri = apr_pstrdup(rnew->pool, "");
+    ap_parse_uri(rnew, rnew->uri);    /* fill in parsed_uri values */
 
     /* Preserve the apr_stat results, and perhaps we also tag that
      * symlinks were tested and/or found for r->filename.