]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r1783440 from 2.2.x: 2.2.x-merge-http-strict 2.2.x-merge-http-strict
authorJoe Orton <jorton@apache.org>
Fri, 17 Feb 2017 18:14:47 +0000 (18:14 +0000)
committerJoe Orton <jorton@apache.org>
Fri, 17 Feb 2017 18:14:47 +0000 (18:14 +0000)
* 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

server/core.c

index b401d93a637c454500bc6754a00c0c591221cf5f..34afb347b54322ceb2e77d79de6a41f1bacceab2 100644 (file)
@@ -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;
 }