1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-08 15:02:10 +03:00

Fix internal redirects. They should have their own HTTP_HEADER filter

instance, and we need to remove the main-request's HTTP_HEADER.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86707 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Ryan Bloom
2000-10-23 10:31:44 +00:00
parent 458ab19e56
commit 776482abf4

View File

@@ -1403,6 +1403,7 @@ static request_rec *internal_internal_redirect(const char *new_uri,
request_rec *r) {
int access_status;
core_request_config *req_cfg;
ap_filter_t *fdel;
request_rec *new = (request_rec *) apr_pcalloc(r->pool,
sizeof(request_rec));
@@ -1462,6 +1463,19 @@ static request_rec *internal_internal_redirect(const char *new_uri,
new->output_filters = r->connection->output_filters;
new->input_filters = r->connection->input_filters;
ap_add_output_filter("HTTP_HEADER", NULL, new, new->connection);
/* On an internal redirect, the redirect will take care of the headers,
* so we have to remove the main-request's HTTP_HEADER filter
*/
fdel = r->output_filters;
while (fdel) {
if (!strcmp(fdel->frec->name, "HTTP_HEADER")) {
ap_remove_output_filter(fdel);
break;
}
fdel = fdel->next;
}
apr_table_setn(new->subprocess_env, "REDIRECT_STATUS",
apr_psprintf(r->pool, "%d", r->status));