]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Arrange the proxy_balancer_method:
authorJean-Frederic Clere <jfclere@apache.org>
Tue, 12 May 2009 15:10:56 +0000 (15:10 +0000)
committerJean-Frederic Clere <jfclere@apache.org>
Tue, 12 May 2009 15:10:56 +0000 (15:10 +0000)
- Put context back after the finder().
- Use  server_rec as second parameter for reset() and age().
- Add the call for reset().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@773929 13f79535-47bb-0310-9956-ffa450edef68

modules/proxy/balancers/mod_lbmethod_bybusyness.c
modules/proxy/balancers/mod_lbmethod_byrequests.c
modules/proxy/balancers/mod_lbmethod_bytraffic.c
modules/proxy/balancers/mod_lbmethod_heartbeat.c
modules/proxy/examples/mod_lbmethod_rr.c
modules/proxy/mod_proxy.h
modules/proxy/mod_proxy_balancer.c

index 1861084a5c4661be2a5b74e8f0a180f545d39116..7df73abb9c0f802f730b0ba50cdc868a561e2118 100644 (file)
@@ -105,11 +105,11 @@ static proxy_worker *find_best_bybusyness(proxy_balancer *balancer,
 
 }
 
-static apr_status_t reset(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t reset(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
-static apr_status_t age(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t age(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
@@ -117,9 +117,9 @@ static const proxy_balancer_method bybusyness =
 {
     "bybusyness",
     &find_best_bybusyness,
+    NULL,
     &reset,
-    &age,
-    NULL
+    &age
 };
 
 
index a895d4437109c92f5ae3c75681c7b6b805abda17..7bcbd838c38c73b12c8689468643bc355e923951 100644 (file)
@@ -132,11 +132,11 @@ static proxy_worker *find_best_byrequests(proxy_balancer *balancer,
     return mycandidate;
 }
 
-static apr_status_t reset(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t reset(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
-static apr_status_t age(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t age(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
@@ -150,9 +150,9 @@ static const proxy_balancer_method byrequests =
 {
     "byrequests",
     &find_best_byrequests,
+    NULL,
     &reset,
-    &age,
-    NULL
+    &age
 };
 
 static void register_hook(apr_pool_t *p)
index 2c231d0e33f0b2da60ccf29aab9b992b70f9b5ef..7876702c069ea3cc164e0443ebdc937243c4829e 100644 (file)
@@ -105,11 +105,11 @@ static proxy_worker *find_best_bytraffic(proxy_balancer *balancer,
     return mycandidate;
 }
 
-static apr_status_t reset(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t reset(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
-static apr_status_t age(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t age(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
@@ -117,9 +117,9 @@ static const proxy_balancer_method bytraffic =
 {
     "bytraffic",
     &find_best_bytraffic,
+    NULL,
     &reset,
-    &age,
-    NULL
+    &age
 };
 
 static void register_hook(apr_pool_t *p)
index 914c367bb215d7da7761bc4f3c1e135369d8d80d..9c57bd024ea203d977d0372e4ee934fff76a8cea 100644 (file)
@@ -299,11 +299,11 @@ static proxy_worker *find_best_hb(proxy_balancer *balancer,
     return mycandidate;
 }
 
-static apr_status_t reset(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t reset(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
-static apr_status_t age(proxy_balancer *balancer, request_rec *r) {
+static apr_status_t age(proxy_balancer *balancer, server_rec *r) {
         return APR_SUCCESS;
 }
 
@@ -311,9 +311,9 @@ static const proxy_balancer_method heartbeat =
 {
     "heartbeat",
     &find_best_hb,
+    NULL,
     &reset,
-    &age,
-    NULL
+    &age
 };
 
 static void register_hooks(apr_pool_t *p)
index 775f2c45e6c4c5ae1357250d4ebc4ea172322a7f..b991790c9a8e919b1f3e698508d7c01ebccef5df 100644 (file)
@@ -95,11 +95,21 @@ static proxy_worker *find_best_roundrobin(proxy_balancer *balancer,
     return mycandidate;
 }
 
+static apr_status_t reset(proxy_balancer *balancer, server_rec *r) {
+        return APR_SUCCESS;
+}
+
+static apr_status_t age(proxy_balancer *balancer, server_rec *r) {
+        return APR_SUCCESS;
+}
+
 static const proxy_balancer_method roundrobin =
 {
     "roundrobin",
     &find_best_roundrobin,
-    NULL
+    NULL,
+    &reset,
+    &age
 };
 
 
index 9963594178ed9dc82927cd036b176ccc553e294a..78d653e10797930049efd885fee8d86ce95d18fd 100644 (file)
@@ -390,9 +390,9 @@ struct proxy_balancer_method {
     const char *name;            /* name of the load balancer method*/
     proxy_worker *(*finder)(proxy_balancer *balancer,
                             request_rec *r);
-    apr_status_t (*reset)(proxy_balancer *balancer, request_rec *r);
-    apr_status_t (*age)(proxy_balancer *balancer, request_rec *r);
     void            *context;   /* general purpose storage */
+    apr_status_t (*reset)(proxy_balancer *balancer, server_rec *r);
+    apr_status_t (*age)(proxy_balancer *balancer, server_rec *r);
 };
 
 #if APR_HAS_THREADS
index f819d8944ea68e787d66ad25230964a6906a9064..5fdee9d2c4de126934b9ccdb225ea1e1bab55bf0 100644 (file)
@@ -941,6 +941,9 @@ static void child_init(apr_pool_t *p, server_rec *s)
         /* Initialize shared scoreboard data */
         balancer = (proxy_balancer *)conf->balancers->elts;
         for (i = 0; i < conf->balancers->nelts; i++) {
+            proxy_balancer_method *lbmethod = balancer->lbmethod;
+            if (balancer->lbmethod!=NULL && balancer->lbmethod->reset != NULL)
+               balancer->lbmethod->reset(balancer, s);
             init_balancer_members(conf, s, balancer);
             balancer++;
         }