You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by mt...@apache.org on 2004/09/26 20:17:38 UTC

cvs commit: httpd-2.0/modules/proxy mod_proxy.c proxy_balancer.c

mturk       2004/09/26 11:17:38

  Modified:    modules/proxy mod_proxy.c proxy_balancer.c
  Log:
  Initialize workers for every virtual server not just for default one.
  
  Revision  Changes    Path
  1.148     +22 -19    httpd-2.0/modules/proxy/mod_proxy.c
  
  Index: mod_proxy.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/proxy/mod_proxy.c,v
  retrieving revision 1.147
  retrieving revision 1.148
  diff -u -r1.147 -r1.148
  --- mod_proxy.c	26 Sep 2004 06:54:27 -0000	1.147
  +++ mod_proxy.c	26 Sep 2004 18:17:38 -0000	1.148
  @@ -1772,27 +1772,30 @@
   
   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;
  +    }
   }
   
   /*
  
  
  
  1.25      +13 -10    httpd-2.0/modules/proxy/proxy_balancer.c
  
  Index: proxy_balancer.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/proxy/proxy_balancer.c,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- proxy_balancer.c	26 Sep 2004 06:58:36 -0000	1.24
  +++ proxy_balancer.c	26 Sep 2004 18:17:38 -0000	1.25
  @@ -776,17 +776,20 @@
   
   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;
       }
   
   }