From: Jim Jagielski Date: Thu, 31 Mar 2011 18:41:23 +0000 (+0000) Subject: Implement reset() funcs for the LBmethods... X-Git-Tag: 2.3.12~123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b405eca0381663613269b6d87ca68e39c28b81fd;p=thirdparty%2Fapache%2Fhttpd.git Implement reset() funcs for the LBmethods... git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1087407 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/balancers/mod_lbmethod_bybusyness.c b/modules/proxy/balancers/mod_lbmethod_bybusyness.c index d27aa395bdf..18dc2bdb883 100644 --- a/modules/proxy/balancers/mod_lbmethod_bybusyness.c +++ b/modules/proxy/balancers/mod_lbmethod_bybusyness.c @@ -105,8 +105,16 @@ static proxy_worker *find_best_bybusyness(proxy_balancer *balancer, } +/* assumed to be mutex protected by caller */ static apr_status_t reset(proxy_balancer *balancer, server_rec *s) { - return APR_SUCCESS; + int i; + proxy_worker **worker; + worker = (proxy_worker **)balancer->workers->elts; + for (i = 0; i < balancer->workers->nelts; i++, worker++) { + (*worker)->s->lbstatus = 0; + (*worker)->s->busy = 0; + } + return APR_SUCCESS; } static apr_status_t age(proxy_balancer *balancer, server_rec *s) { diff --git a/modules/proxy/balancers/mod_lbmethod_byrequests.c b/modules/proxy/balancers/mod_lbmethod_byrequests.c index 9b453ceaf36..4a9885d517e 100644 --- a/modules/proxy/balancers/mod_lbmethod_byrequests.c +++ b/modules/proxy/balancers/mod_lbmethod_byrequests.c @@ -132,8 +132,15 @@ static proxy_worker *find_best_byrequests(proxy_balancer *balancer, return mycandidate; } +/* assumed to be mutex protected by caller */ static apr_status_t reset(proxy_balancer *balancer, server_rec *s) { - return APR_SUCCESS; + int i; + proxy_worker **worker; + worker = (proxy_worker **)balancer->workers->elts; + for (i = 0; i < balancer->workers->nelts; i++, worker++) { + (*worker)->s->lbstatus = 0; + } + return APR_SUCCESS; } static apr_status_t age(proxy_balancer *balancer, server_rec *s) { diff --git a/modules/proxy/balancers/mod_lbmethod_bytraffic.c b/modules/proxy/balancers/mod_lbmethod_bytraffic.c index d0aea4bf1f3..fc058a6ce65 100644 --- a/modules/proxy/balancers/mod_lbmethod_bytraffic.c +++ b/modules/proxy/balancers/mod_lbmethod_bytraffic.c @@ -105,8 +105,18 @@ static proxy_worker *find_best_bytraffic(proxy_balancer *balancer, return mycandidate; } +/* assumed to be mutex protected by caller */ static apr_status_t reset(proxy_balancer *balancer, server_rec *s) { - return APR_SUCCESS; + int i; + proxy_worker **worker; + worker = (proxy_worker **)balancer->workers->elts; + for (i = 0; i < balancer->workers->nelts; i++, worker++) { + (*worker)->s->lbstatus = 0; + (*worker)->s->busy = 0; + (*worker)->s->transferred = 0; + (*worker)->s->read = 0; + } + return APR_SUCCESS; } static apr_status_t age(proxy_balancer *balancer, server_rec *s) {