From 317c6358d8bb216de7befecc1d7455f9bc4417dc Mon Sep 17 00:00:00 2001 From: "William A. Rowe Jr" Date: Tue, 16 Oct 2001 01:57:45 +0000 Subject: [PATCH] This will probably fix recent breakage to mod_negotation and httpd.test, 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 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/request.c b/server/request.c index 008dc657a7..61a6f040d4 100644 --- a/server/request.c +++ b/server/request.c @@ -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. -- 2.50.1