View | Details | Raw Unified | Return to bug 132528
Collapse All | Expand All

(-)www/apache22/files/patch-server__core.c (+36 lines)
Added Link Here
1
--- ./server/core.c.orig	2008-06-02 23:18:18.000000000 +0200
2
+++ ./server/core.c	2009-03-09 15:05:57.000000000 +0100
3
@@ -494,6 +494,7 @@
4
     core_server_config *base = (core_server_config *)basev;
5
     core_server_config *virt = (core_server_config *)virtv;
6
     core_server_config *conf;
7
+    const char *accfb, *accfc;
8
 
9
     conf = (core_server_config *)apr_pmemdup(p, virt, sizeof(core_server_config));
10
 
11
@@ -509,6 +510,25 @@
12
         conf->protocol = base->protocol;
13
     }
14
 
15
+    /*
16
+     * bz accept_filter(9) disable fix.
17
+     *
18
+     * You can only configure it in the base config but the
19
+     * values are copied and checked into virtual host configs,
20
+     * so if you disable it in base it will still be on in virt.
21
+     * To fix it, we overwrite each virt config if it does not
22
+     * match what is in base config for the hardcoded http(s).
23
+     */
24
+    accfb = apr_table_get(base->accf_map, "http");
25
+    accfc = apr_table_get(conf->accf_map, "http");
26
+    if (accfb && accfc && strcmp(accfb, accfc))
27
+        apr_table_set(conf->accf_map, "http", accfb);
28
+
29
+    accfb = apr_table_get(base->accf_map, "https");
30
+    accfc = apr_table_get(conf->accf_map, "https");
31
+    if (accfb && accfc && strcmp(accfb, accfc))
32
+        apr_table_set(conf->accf_map, "https", accfb);
33
+
34
     conf->sec_dir = apr_array_append(p, base->sec_dir, virt->sec_dir);
35
     conf->sec_url = apr_array_append(p, base->sec_url, virt->sec_url);
36

Return to bug 132528