Download | Plain Text | Line Numbers


diff -Naur httpd-2.4.10.orig/modules/proxy/mod_proxy.c httpd-2.4.10/modules/proxy/mod_proxy.c
--- httpd-2.4.10.orig/modules/proxy/mod_proxy.c	2014-06-21 15:47:30.000000000 +0200
+++ httpd-2.4.10/modules/proxy/mod_proxy.c	2014-11-18 15:45:08.269718560 +0100
@@ -2632,12 +2632,16 @@
          */
         worker = (proxy_worker *)conf->workers->elts;
         for (i = 0; i < conf->workers->nelts; i++, worker++) {
+            if (!strncasecmp(worker->s->name, "proxy://forward", 15)
+                || !strncasecmp(worker->s->name, "proxy://reverse", 15))
+                continue;
             ap_proxy_initialize_worker(worker, s, conf->pool);
         }
         /* Create and initialize forward worker if defined */
         if (conf->req_set && conf->req) {
-            proxy_worker *forward;
-            ap_proxy_define_worker(p, &forward, NULL, NULL, "http://www.apache.org", 0);
+            proxy_worker *forward = ap_proxy_get_worker(p, NULL, conf, "proxy://forward");
+            if (!forward)
+                ap_proxy_define_worker(p, &forward, NULL, NULL, "http://www.apache.org", 0);
             conf->forward = forward;
             PROXY_STRNCPY(conf->forward->s->name,     "proxy:forward");
             PROXY_STRNCPY(conf->forward->s->hostname, "*");
@@ -2655,7 +2659,9 @@
             conf->forward->s->is_address_reusable = 0;
         }
         if (!reverse) {
-            ap_proxy_define_worker(p, &reverse, NULL, NULL, "http://www.apache.org", 0);
+            reverse = ap_proxy_get_worker(p, NULL, conf, "proxy://reverse");
+            if (!reverse)
+                ap_proxy_define_worker(p, &reverse, NULL, NULL, "http://www.apache.org", 0);
             PROXY_STRNCPY(reverse->s->name,     "proxy:reverse");
             PROXY_STRNCPY(reverse->s->hostname, "*");
             PROXY_STRNCPY(reverse->s->scheme,   "*");