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 |
|