Changes with Apache 2.0.19-dev
+
+ *) Add a check to ap_die() to make sure the filter stack is sane and
+ contains the correct basic filters when an error occurs. This fixes
+ a problem where headers are not being sent on error. [John Sterling]
+
*) New Header directive 'echo' option. "Header echo regex" will
cause any headers received on the request that match regex to be
echoed to (included in) the response headers.
#include <stdarg.h>
#endif
+static void add_required_filters(request_rec *r)
+{
+ ap_filter_t *f = r->output_filters;
+ int has_core = 0, has_content = 0, has_http_header = 0;
+ while (f) {
+ if(!strcasecmp(f->frec->name, "CORE"))
+ has_core = 1;
+ else if(!strcasecmp(f->frec->name, "CONTENT_LENGTH"))
+ has_content = 1;
+ else if(!strcasecmp(f->frec->name, "HTTP_HEADER"))
+ has_http_header = 1;
+ f = f->next;
+ }
+ if(!has_core)
+ ap_add_output_filter("CORE", NULL, r, r->connection);
+ if(!has_content)
+ ap_add_output_filter("CONTENT_LENGTH", NULL, r, r->connection);
+ if(!has_http_header)
+ ap_add_output_filter("HTTP_HEADER", NULL, r, r->connection);
+
+}
+
/*****************************************************************
*
* Mainline request processing...
custom_response);
}
}
+ add_required_filters(r);
ap_send_error_response(r, recursive_error);
}