From: Eric Covener Date: Fri, 19 Dec 2014 14:03:52 +0000 (+0000) Subject: tweak SCRIPT_FILENAME passed to fastcgi backends when a balancer is used. X-Git-Tag: 2.5.0-alpha~3605 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=727a07d55383d66bcbc2c92da9bb439b40cc970c;p=apache tweak SCRIPT_FILENAME passed to fastcgi backends when a balancer is used. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1646724 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 05541f82a6..c5fd33792b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) mod_proxy_fcgi: Remove proxy:balancer:// prefix from SCRIPT_FILENAME + passed to fastcgi backends. [Eric Covener] + *) mod_http: Fix incorrect If-Match handling. PR 57358 [Kunihiko Sakamoto ] diff --git a/modules/proxy/mod_proxy_fcgi.c b/modules/proxy/mod_proxy_fcgi.c index 9b20a9f550..f53eb0e008 100644 --- a/modules/proxy/mod_proxy_fcgi.c +++ b/modules/proxy/mod_proxy_fcgi.c @@ -206,9 +206,20 @@ static apr_status_t send_environment(proxy_conn_rec *conn, request_rec *r, apr_status_t rv; apr_size_t avail_len, len, required_len; int next_elem, starting_elem; + char *proxyfilename = r->filename; + + /* Strip balancer prefix */ + if (r->filename && !strncmp(r->filename, "proxy:balancer://", 17)) { + char *newfname = apr_pstrdup(r->pool, r->filename); + newfname += 17; + newfname = ap_strchr(newfname, '/'); + r->filename = newfname; + } ap_add_common_vars(r); ap_add_cgi_vars(r); + + r->filename = proxyfilename; /* XXX are there any FastCGI specific env vars we need to send? */