AP_DECLARE_DATA ap_filter_rec_t *ap_net_time_filter_handle;
AP_DECLARE_DATA ap_filter_rec_t *ap_core_input_filter_handle;
+/* magic pointer for ErrorDocument xxx "default" */
+static char errordocument_default;
+
static void *create_core_dir_config(apr_pool_t *a, char *dir)
{
core_dir_config *conf;
sizeof(*conf->response_code_strings) * RESPONSE_CODES);
for (i = 0; i < RESPONSE_CODES; ++i) {
- conf->response_code_strings[i] = new->response_code_strings[i];
+ if (new->response_code_strings[i] != NULL) {
+ conf->response_code_strings[i] = new->response_code_strings[i];
+ }
}
}
/* Otherwise we simply use the base->response_code_strings array
return NULL;
}
+ if (dirconf->response_code_strings[error_index] == &errordocument_default) {
+ return NULL;
+ }
+
return dirconf->response_code_strings[error_index];
}
/* special case: ErrorDocument 404 default restores the
* canned server error response
*/
- conf->response_code_strings[index_number] = NULL;
+ conf->response_code_strings[index_number] = &errordocument_default;
}
else {
/* hack. Prefix a " if it is a msg; as that is what