/* magic pointer for ErrorDocument xxx "default" */
static char errordocument_default;
+static apr_array_header_t *saved_server_config_defines = NULL;
+
static void *create_core_dir_config(apr_pool_t *a, char *dir)
{
core_dir_config *conf;
return NULL;
}
+static int reset_config_defines(void *dummy)
+{
+ ap_server_config_defines = saved_server_config_defines;
+ return OK;
+}
+
static const char *set_define(cmd_parms *cmd, void *dummy,
const char *optarg)
{
ap_mutex_init(pconf);
+ /*
+ * Make sure we revert the effects of Define/UnDefine when restarting.
+ * We cannot use apr_array_copy_hdr because it does not protect from the
+ * way unset_define removes entries.
+ */
+ saved_server_config_defines = ap_server_config_defines;
+ ap_server_config_defines = apr_array_copy(pconf, ap_server_config_defines);
+ apr_pool_cleanup_register(pconf, NULL, reset_config_defines,
+ apr_pool_cleanup_null);
+
return APR_SUCCESS;
}