]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Use inherit_set to let the global server set
authorRainer Jung <rjung@apache.org>
Fri, 14 Dec 2012 15:02:30 +0000 (15:02 +0000)
committerRainer Jung <rjung@apache.org>
Fri, 14 Dec 2012 15:02:30 +0000 (15:02 +0000)
the default for all vhosts.

Otherwise inherit would need to be disabled
redundantly in each vhost.

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

docs/manual/mod/mod_proxy.xml
modules/proxy/mod_proxy.c
modules/proxy/mod_proxy.h

index 8dd5e50dc6b3ed59eba03a3ab0665c4f5e894979..e92275f04798a849d48a30acbc44a308ca10d3a9 100644 (file)
@@ -1208,6 +1208,7 @@ ProxyPass / balancer://hotcluster/
             Balancers and Workers defined in the main server. This can cause issues and
             inconsistent behavior if using the Balancer Manager and so should be disabled
             if using that feature.</p>
+        <p>The setting in the global server defines the default for all vhosts.</p>
     </usage>
 </directivesynopsis>
 
index 7f2992c146e8d7cb91f4b54a0edefede11604c14..dee15bc0d5e485916c6accc4862ea4478d31c210 100644 (file)
@@ -1161,6 +1161,7 @@ static void * create_proxy_config(apr_pool_t *p, server_rec *s)
     ps->max_balancers = 0;
     ps->bal_persist = 0;
     ps->inherit = 1;
+    ps->inherit_set = 0;
     ps->bgrowth = 5;
     ps->bgrowth_set = 0;
     ps->req_set = 0;
@@ -1187,7 +1188,10 @@ static void * merge_proxy_config(apr_pool_t *p, void *basev, void *overridesv)
     proxy_server_conf *base = (proxy_server_conf *) basev;
     proxy_server_conf *overrides = (proxy_server_conf *) overridesv;
 
-    if (overrides->inherit || base->inherit) {
+    ps->inherit = (overrides->inherit_set == 0) ? base->inherit : overrides->inherit;
+    ps->inherit_set = overrides->inherit_set || base->inherit_set;
+
+    if (ps->inherit) {
         ps->proxies = apr_array_append(p, base->proxies, overrides->proxies);
         ps->sec_proxy = apr_array_append(p, base->sec_proxy, overrides->sec_proxy);
         ps->aliases = apr_array_append(p, base->aliases, overrides->aliases);
@@ -1218,7 +1222,6 @@ static void * merge_proxy_config(apr_pool_t *p, void *basev, void *overridesv)
     ps->bgrowth_set = overrides->bgrowth_set || base->bgrowth_set;
     ps->max_balancers = overrides->max_balancers || base->max_balancers;
     ps->bal_persist = overrides->bal_persist;
-    ps->inherit = overrides->inherit || base->inherit;
     ps->recv_buffer_size = (overrides->recv_buffer_size_set == 0) ? base->recv_buffer_size : overrides->recv_buffer_size;
     ps->recv_buffer_size_set = overrides->recv_buffer_size_set || base->recv_buffer_size_set;
     ps->io_buffer_size = (overrides->io_buffer_size_set == 0) ? base->io_buffer_size : overrides->io_buffer_size;
@@ -1909,6 +1912,7 @@ static const char *set_inherit(cmd_parms *parms, void *dummy, int flag)
     ap_get_module_config(parms->server->module_config, &proxy_module);
 
     psf->inherit = flag;
+    psf->inherit_set = 1;
     return NULL;
 }
 
index 17031a1bd2846643d22ad691caea09b35c85582a..3df74bc0bc815166c41700c397da0863e6b7ef1f 100644 (file)
@@ -179,6 +179,7 @@ typedef struct {
     unsigned int source_address_set:1;
     unsigned int bgrowth_set:1;
     unsigned int inherit:1;
+    unsigned int inherit_set:1;
     unsigned int bal_persist:1;
 } proxy_server_conf;