- 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
}
-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;
}
{
"bybusyness",
&find_best_bybusyness,
+ NULL,
&reset,
- &age,
- NULL
+ &age
};
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;
}
{
"byrequests",
&find_best_byrequests,
+ NULL,
&reset,
- &age,
- NULL
+ &age
};
static void register_hook(apr_pool_t *p)
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;
}
{
"bytraffic",
&find_best_bytraffic,
+ NULL,
&reset,
- &age,
- NULL
+ &age
};
static void register_hook(apr_pool_t *p)
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;
}
{
"heartbeat",
&find_best_hb,
+ NULL,
&reset,
- &age,
- NULL
+ &age
};
static void register_hooks(apr_pool_t *p)
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
};
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
/* 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++;
}