You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2014/12/19 15:03:52 UTC

svn commit: r1646724 - in /httpd/httpd/trunk: CHANGES modules/proxy/mod_proxy_fcgi.c

Author: covener
Date: Fri Dec 19 14:03:52 2014
New Revision: 1646724

URL: http://svn.apache.org/r1646724
Log:
tweak SCRIPT_FILENAME passed to fastcgi backends when a balancer is used.


Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1646724&r1=1646723&r2=1646724&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Fri Dec 19 14:03:52 2014
@@ -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 <ksakamoto google.com>]
 

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c?rev=1646724&r1=1646723&r2=1646724&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c Fri Dec 19 14:03:52 2014
@@ -206,9 +206,20 @@ static apr_status_t send_environment(pro
     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? */
 



Re: svn commit: r1646724 - in /httpd/httpd/trunk: CHANGES modules/proxy/mod_proxy_fcgi.c

Posted by Christophe JAILLET <ch...@wanadoo.fr>.
Hi,

Le 19/12/2014 15:03, covener@apache.org a écrit :
> Author: covener
> Date: Fri Dec 19 14:03:52 2014
> New Revision: 1646724
>
> URL: http://svn.apache.org/r1646724
> Log:
> tweak SCRIPT_FILENAME passed to fastcgi backends when a balancer is used.
>
>
> Modified:
>      httpd/httpd/trunk/CHANGES
>      httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c
>
> Modified: httpd/httpd/trunk/CHANGES
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1646724&r1=1646723&r2=1646724&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/CHANGES [utf-8] (original)
> +++ httpd/httpd/trunk/CHANGES [utf-8] Fri Dec 19 14:03:52 2014
> @@ -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 <ksakamoto google.com>]
>   
>
> Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c?rev=1646724&r1=1646723&r2=1646724&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c (original)
> +++ httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c Fri Dec 19 14:03:52 2014
> @@ -206,9 +206,20 @@ static apr_status_t send_environment(pro
>       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;

This could be
       char *newfname = apr_pstrdup(r->pool, r->filename + 17);
in order to save a few bytes.

> +        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? */