summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2024-07-27 15:54:08 +0200
committerYann Ylavic <ylavic@apache.org>2024-07-27 15:54:08 +0200
commit25ef591ed61cb281e0c88d6c4af1160f871c7387 (patch)
treec7b674aee6ca9688eca8c3e9eee478c02af72e90 /modules
parentTrigger ci (diff)
downloadapache2-25ef591ed61cb281e0c88d6c4af1160f871c7387.tar.xz
apache2-25ef591ed61cb281e0c88d6c4af1160f871c7387.zip
mod_proxy_fcgi: Use r->uri rather than r->filename for directory walk.
r->filename is a "proxy:" one for mod_proxy modules, and ap_directory_walk() can't cope with that, so force r->uri. Github: closes #468 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919547 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules')
-rw-r--r--modules/proxy/mod_proxy_fcgi.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/modules/proxy/mod_proxy_fcgi.c b/modules/proxy/mod_proxy_fcgi.c
index d121e1b2bf..bb56cf0a45 100644
--- a/modules/proxy/mod_proxy_fcgi.c
+++ b/modules/proxy/mod_proxy_fcgi.c
@@ -133,7 +133,6 @@ static int proxy_fcgi_canon(request_rec *r, char *url)
/* It has to be on disk for this to work */
if (!strcasecmp(pathinfo_type, "full")) {
rconf->need_dirwalk = 1;
- ap_unescape_url_keep2f(path, 0);
}
else if (!strcasecmp(pathinfo_type, "first-dot")) {
char *split = ap_strchr(path, '.');
@@ -348,10 +347,11 @@ static apr_status_t send_environment(proxy_conn_rec *conn, request_rec *r,
fcgi_req_config_t *rconf = ap_get_module_config(r->request_config, &proxy_fcgi_module);
fcgi_dirconf_t *dconf = ap_get_module_config(r->per_dir_config, &proxy_fcgi_module);
- if (rconf) {
- if (rconf->need_dirwalk) {
- ap_directory_walk(r);
- }
+ if (rconf && rconf->need_dirwalk) {
+ char *saved_filename = r->filename;
+ r->filename = r->uri;
+ ap_directory_walk(r);
+ r->filename = saved_filename;
}
/* Strip proxy: prefixes */