opnsense-ports/www/apache22/files/patch-server__core.c
Franco Fichtner 8329124b8a */*: sync with upstream
Taken from: FreeBSD
2015-06-01 07:58:49 +02:00

63 lines
2.4 KiB
C

--- server/core.c.orig 2014-08-21 17:33:48 UTC
+++ server/core.c
@@ -512,6 +512,7 @@ static void *merge_core_server_configs(a
core_server_config *base = (core_server_config *)basev;
core_server_config *virt = (core_server_config *)virtv;
core_server_config *conf;
+ const char *accfb, *accfc;
conf = (core_server_config *)apr_pmemdup(p, virt, sizeof(core_server_config));
@@ -527,6 +528,25 @@ static void *merge_core_server_configs(a
conf->protocol = base->protocol;
}
+ /*
+ * bz accept_filter(9) disable fix.
+ *
+ * You can only configure it in the base config but the
+ * values are copied and checked into virtual host configs,
+ * so if you disable it in base it will still be on in virt.
+ * To fix it, we overwrite each virt config if it does not
+ * match what is in base config for the hardcoded http(s).
+ */
+ accfb = apr_table_get(base->accf_map, "http");
+ accfc = apr_table_get(conf->accf_map, "http");
+ if (accfb && accfc && strcmp(accfb, accfc))
+ apr_table_set(conf->accf_map, "http", accfb);
+
+ accfb = apr_table_get(base->accf_map, "https");
+ accfc = apr_table_get(conf->accf_map, "https");
+ if (accfb && accfc && strcmp(accfb, accfc))
+ apr_table_set(conf->accf_map, "https", accfb);
+
conf->sec_dir = apr_array_append(p, base->sec_dir, virt->sec_dir);
conf->sec_url = apr_array_append(p, base->sec_url, virt->sec_url);
@@ -2778,7 +2798,7 @@ AP_DECLARE(void) ap_get_server_revision(
AP_DECLARE(const char *) ap_get_server_description(void)
{
return server_description ? server_description :
- AP_SERVER_BASEVERSION " (" PLATFORM ")";
+ AP_SERVER_BASEVERSION " (FreeBSD)";
}
AP_DECLARE(const char *) ap_get_server_banner(void)
@@ -2839,7 +2859,7 @@ static void set_banner(apr_pool_t *pconf
ap_add_version_component(pconf, AP_SERVER_BASEPRODUCT "/" AP_SERVER_MAJORVERSION);
}
else {
- ap_add_version_component(pconf, AP_SERVER_BASEVERSION " (" PLATFORM ")");
+ ap_add_version_component(pconf, AP_SERVER_BASEVERSION " (FreeBSD)");
}
/*
@@ -2849,7 +2869,7 @@ static void set_banner(apr_pool_t *pconf
if (ap_server_tokens != SrvTk_FULL) {
banner_locked++;
}
- server_description = AP_SERVER_BASEVERSION " (" PLATFORM ")";
+ server_description = AP_SERVER_BASEVERSION " (FreeBSD)";
}
static const char *set_serv_tokens(cmd_parms *cmd, void *dummy,