]> granicus.if.org Git - apache/commitdiff
HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone. Only
authorJeff Trawick <trawick@apache.org>
Thu, 12 Apr 2007 15:07:11 +0000 (15:07 +0000)
committerJeff Trawick <trawick@apache.org>
Thu, 12 Apr 2007 15:07:11 +0000 (15:07 +0000)
processing of error responses (4xx, 5xx) will be altered.

PR: 39245

This is based on a patch submitted by Bart van der Schans <schans hippo.nl>
and tweaked slightly by me based on discussions on dev@ since April 2006.
I think rpleum was the first to mention the 1xx issue.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@527969 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
docs/manual/mod/mod_proxy.xml
modules/proxy/mod_proxy_http.c

diff --git a/CHANGES b/CHANGES
index cb322e0a436492258016200242056405db6f41bb..605ad962614f92edf1dc62dbff041e1a55bab2ae 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,10 @@
 Changes with Apache 2.3.0
   [Remove entries to the current 2.0 and 2.2 section below, when backported]
 
+  *) 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 <schans hippo.nl>]
+
   *) htdbm: Enable crypt support on platforms with crypt() but not
      <crypt.h>, such as z/OS. [David Jones <oscaremma gmail.com>]
 
index 20ef6775aa6b8d0b378cd9594e7cc86050eebc18..b4230fdbf1317af1f39cc560ed85c1d7eb620411 100644 (file)
@@ -1196,6 +1196,9 @@ header for proxied requests</description>
     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).</p>
+
+    <p>This directive does not affect the processing of informational (1xx),
+    normal success (2xx), or redirect (3xx) responses.</p>
 </usage>
 </directivesynopsis>
 
index 233903bef22ff27f06cbd0c76eae2155716db8d3..41af69fe4d062c0a24574c5355e872cd662e3a6e 100644 (file)
@@ -1448,7 +1448,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;
@@ -1557,7 +1557,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