static void child_init(apr_pool_t *p, server_rec *s)
{
- void *sconf = s->module_config;
- proxy_server_conf *conf = (proxy_server_conf *)
- ap_get_module_config(sconf, &proxy_module);
- proxy_worker *worker;
- int i;
- /* Initialize worker's shared scoreboard data */
- worker = (proxy_worker *)conf->workers->elts;
- for (i = 0; i < conf->workers->nelts; i++) {
- ap_proxy_initialize_worker_share(conf, worker);
- ap_proxy_initialize_worker(worker, s);
- worker++;
- }
- /* Initialize forward worker if defined */
- if (conf->forward) {
- ap_proxy_initialize_worker_share(conf, conf->forward);
- ap_proxy_initialize_worker(conf->forward, s);
- /* Do not disable worker in case of errors */
- conf->forward->s->status |= PROXY_WORKER_IGNORE_ERRORS;
+ while (s) {
+ void *sconf = s->module_config;
+ proxy_server_conf *conf;
+ proxy_worker *worker;
+ int i;
+
+ conf = (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
+ /* Initialize worker's shared scoreboard data */
+ worker = (proxy_worker *)conf->workers->elts;
+ for (i = 0; i < conf->workers->nelts; i++) {
+ ap_proxy_initialize_worker_share(conf, worker);
+ ap_proxy_initialize_worker(worker, s);
+ worker++;
+ }
+ /* Initialize forward worker if defined */
+ if (conf->forward) {
+ ap_proxy_initialize_worker_share(conf, conf->forward);
+ ap_proxy_initialize_worker(conf->forward, s);
+ /* Do not disable worker in case of errors */
+ conf->forward->s->status |= PROXY_WORKER_IGNORE_ERRORS;
+ }
+ s = s->next;
}
-
}
/*
static void child_init(apr_pool_t *p, server_rec *s)
{
- void *sconf = s->module_config;
- proxy_server_conf *conf = (proxy_server_conf *)
- ap_get_module_config(sconf, &proxy_module);
- proxy_balancer *balancer;
- int i;
+ while (s) {
+ void *sconf = s->module_config;
+ proxy_server_conf *conf;
+ proxy_balancer *balancer;
+ int i;
+ conf = (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
- /* Initialize shared scoreboard data */
- balancer = (proxy_balancer *)conf->balancers->elts;
- for (i = 0; i < conf->balancers->nelts; i++) {
- init_runtime_score(conf, balancer);
- balancer++;
+ /* Initialize shared scoreboard data */
+ balancer = (proxy_balancer *)conf->balancers->elts;
+ for (i = 0; i < conf->balancers->nelts; i++) {
+ init_runtime_score(conf, balancer);
+ balancer++;
+ }
+ s = s->next;
}
}