httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ruediger Pluem <>
Subject Re: [PATCH] Bug 36816: balancer_manager doesn't work if worker name contains port
Date Thu, 06 Oct 2005 12:24:50 GMT
This is a follow up to the discussion I started in my comment to PR36816:

I am currently wondering what identifies a proxy worker.
>From what I read in ap_proxy_get_worker in proxy_util.c it is identified by
worker->name. But I see a problem here: The url passed for comparison here
gets reduced effectively to schema, hostname and port of the worker, but
worker->name also contains a path if one was added during configuration
as it is the result of apr_uri_unparse(p, &uri, APR_URI_UNP_REVEALPASSWORD);
As an example I take the one from PR36816:

<Proxy balancer://test1>

So the worker can never be found by

>From what I understand from other parts of the code the worker should be identified
by the full URL. So I think the following patch should be applied to ap_proxy_get_worker

Index: proxy_util.c
--- proxy_util.c        (Revision 295013)
+++ proxy_util.c        (Arbeitskopie)
@@ -1218,9 +1218,6 @@
     c = strchr(uri, ':');
     if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0')
        return NULL;
-    /* remove path from uri */
-    if ((c = strchr(c + 3, '/')))
-        *c = '\0';

     worker = (proxy_worker *)conf->workers->elts;
     for (i = 0; i < conf->workers->nelts; i++) {

Last but not least all information that identifies a worker should be displayed
by the manager application.

Thoughts / comments?



On 10/05/2005 08:44 PM, Colin Murtaugh wrote:
> Attached is a patch for bug 36816.  The balancer_manager interface 
> offered by mod_proxy_balancer doesn't work properly if a worker name 
> contains a port number.
> E.g. if I have configured a cluster as:
> <Proxy balancer://testcluster>
>     BalancerMember
>     BalancerMember
> </Proxy>
> then I'm not able to edit the worker settings via the 
> balancer_manager.  This is because the worker->name is being compared 
> to worker->hostname; worker->name contains the port and worker-
>>hostname does not.
> I've created the patch below to fix this problem.
> --Colin

View raw message