From 545f73efebf26aeb7e363619be06ddf27d395186 Mon Sep 17 00:00:00 2001
From: Jim Jagielski
Date: Tue, 1 May 2007 13:22:27 +0000
Subject: [PATCH] Merge r527969 from trunk:
HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone. Only
processing of error responses (4xx, 5xx) will be altered.
PR: 39245
This is based on a patch submitted by Bart van der Schans
and tweaked slightly by me based on discussions on dev@ since April 2006.
I think rpleum was the first to mention the 1xx issue.
Submitted by: trawick
Reviewed by: jim
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@534068 13f79535-47bb-0310-9956-ffa450edef68
---
CHANGES | 4 ++++
docs/manual/mod/mod_proxy.xml | 3 +++
modules/proxy/mod_proxy_http.c | 4 ++--
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/CHANGES b/CHANGES
index 172aa817a40..0321a6b8223 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
-*- coding: utf-8 -*-
Changes with Apache 2.2.5
+ *) HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone. Only
+ processing of error responses (4xx, 5xx) will be altered. PR 39245.
+ [Jeff Trawick, Bart van der Schans ]
+
*) htdbm: Enable crypt support on platforms with crypt() but not
, such as z/OS. [David Jones ]
diff --git a/docs/manual/mod/mod_proxy.xml b/docs/manual/mod/mod_proxy.xml
index 1b677479c7d..8b15446bdce 100644
--- a/docs/manual/mod/mod_proxy.xml
+++ b/docs/manual/mod/mod_proxy.xml
@@ -1156,6 +1156,9 @@ header for proxied requests
the error code and act accordingly (default behavior would display
the error page of the proxied server, turning this on shows the SSI
Error message).
+
+ This directive does not affect the processing of informational (1xx),
+ normal success (2xx), or redirect (3xx) responses.
diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c
index 5c0de67fc0d..ba19810a25e 100644
--- a/modules/proxy/mod_proxy_http.c
+++ b/modules/proxy/mod_proxy_http.c
@@ -1455,7 +1455,7 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
* if we are overriding the errors, we can't put the content
* of the page into the brigade
*/
- if (!conf->error_override || ap_is_HTTP_SUCCESS(r->status)) {
+ if (!conf->error_override || !ap_is_HTTP_ERROR(r->status)) {
/* read the body, pass it to the output filters */
apr_read_type_e mode = APR_NONBLOCK_READ;
int finish = FALSE;
@@ -1564,7 +1564,7 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
if (conf->error_override) {
/* the code above this checks for 'OK' which is what the hook expects */
- if (ap_is_HTTP_SUCCESS(r->status))
+ if (!ap_is_HTTP_ERROR(r->status))
return OK;
else {
/* clear r->status for override error, otherwise ErrorDocument
--
2.47.2