]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r697362 from trunk:
authorEric Covener <covener@apache.org>
Sun, 28 Sep 2008 15:36:44 +0000 (15:36 +0000)
committerEric Covener <covener@apache.org>
Sun, 28 Sep 2008 15:36:44 +0000 (15:36 +0000)
For timeouts, behave as before and not drop.
Submitted by: Adam Woodworth <mirkperl gmail.com>
Reviewed by: jim, rpluem, covener

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@699841 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/proxy/mod_proxy_http.c

diff --git a/CHANGES b/CHANGES
index 6674d05b5c6e6a4b8d3b7c5de424a58ffb9197ca..f5a43bc4a998d8b215c57c1f5ed5cc0eef88f7a7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -5,6 +5,10 @@ Changes with Apache 2.2.10
      mod_proxy_ftp: Prevent XSS attacks when using wildcards in the path of
      the FTP URL. Discovered by Marc Bevand of Rapid7. [Ruediger Pluem]
 
+  *) mod_proxy_http: Don't trigger a retry by the client if a failure to
+     read the response line was the result of a timeout.
+     [Adam Woodworth <mirkperl gmail.com>]
+
   *) Support chroot on Unix-family platforms
      PR 43596 [Dimitar Pashev <mitko banksoft-bg.com>]
 
diff --git a/STATUS b/STATUS
index c2a0c21a21f0a4bbc004bd7592d2aeb9f76e3f8c..6d3d9eca4b12cc7340f9163c61a0cbd62b5a54fd 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -85,15 +85,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-   * mod_proxy_http: Do not close the connection to the client if the reading
-     of a response from the backend failed due to a timeout.
-     [Adam Woodworth <mirkperl gmail.com>]
-    Trunk version of patch:
-       http://svn.apache.org/viewvc?rev=697362&view=rev
-    Backport version for 2.2.x of patch:
-       Trunk version of patch works
-   +1: rpluem, jim, covener
-
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
 
index 791c1dba499a63cb3d6fa280f053d154b8895086..9175baec65ff1e1ecdc2c4c35e931927b67f7052 100644 (file)
@@ -1375,6 +1375,10 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
             ap_log_rerror(APLOG_MARK, APLOG_ERR, rc, r,
                           "proxy: error reading status line from remote "
                           "server %s", backend->hostname);
+            if (rc == APR_TIMEUP) {
+                ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+                              "proxy: read timeout");
+            }
             /*
              * If we are a reverse proxy request shutdown the connection
              * WITHOUT ANY response to trigger a retry by the client
@@ -1382,9 +1386,12 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
              * BUT currently we should not do this if the request is the
              * first request on a keepalive connection as browsers like
              * seamonkey only display an empty page in this case and do
-             * not do a retry.
+             * not do a retry. We should also not do this on a
+             * connection which times out; instead handle as
+             * we normally would handle timeouts
              */
-            if (r->proxyreq == PROXYREQ_REVERSE && c->keepalives) {
+            if (r->proxyreq == PROXYREQ_REVERSE && c->keepalives &&
+                rc != APR_TIMEUP) {
                 apr_bucket *eos;
 
                 ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,