summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Orton <jorton@apache.org>2017-02-17 18:14:47 +0000
committerJoe Orton <jorton@apache.org>2017-02-17 18:14:47 +0000
commit478b3fe508349a7a3745611bff279e62cf9a39ac (patch)
tree6f20fa0211a0bc68b699159d02087c6e370d29a7
parentebd99cf87b9d869c541b08ac53e836e14b4d34a6 (diff)
downloadhttpd-2.2.x-merge-http-strict.tar.gz
Merge r1783440 from 2.2.x:2.2.x-merge-http-strict
* server/core.c (merge_core_server_configs): Fix merging of HttpProtocolOptions from global to vhost context. Reviewed by: jorton, wrowe, covener git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x-merge-http-strict@1783441 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--server/core.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/server/core.c b/server/core.c
index b401d93a63..34afb347b5 100644
--- a/server/core.c
+++ b/server/core.c
@@ -546,15 +546,19 @@ static void *merge_core_server_configs(apr_pool_t *p, void *basev, void *virtv)
? virt->merge_trailers
: base->merge_trailers;
- if (virt->http09_enable != AP_HTTP09_UNSET)
- conf->http09_enable = virt->http09_enable;
+ if (conf->http09_enable == AP_HTTP09_UNSET)
+ conf->http09_enable = base->http09_enable;
- if (virt->http_conformance != AP_HTTP_CONFORMANCE_UNSET)
- conf->http_conformance = virt->http_conformance;
+ if (conf->http_conformance == AP_HTTP_CONFORMANCE_UNSET)
+ conf->http_conformance = base->http_conformance;
- if (virt->http_methods != AP_HTTP_METHODS_UNSET)
- conf->http_methods = virt->http_methods;
+ if (conf->http_methods == AP_HTTP_METHODS_UNSET)
+ conf->http_methods = base->http_methods;
+ /* N.B. If you backport things here from 2.4, note that the
+ * merging logic needs to be inverted, since conf is initially a
+ * copy of vertv not basev. */
+
return conf;
}