httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cove...@apache.org
Subject svn commit: r1031551 - in /httpd/httpd/trunk: CHANGES modules/proxy/mod_proxy_connect.c
Date Fri, 05 Nov 2010 13:12:15 GMT
Author: covener
Date: Fri Nov  5 13:12:14 2010
New Revision: 1031551

URL: http://svn.apache.org/viewvc?rev=1031551&view=rev
Log:
PR50220: keep on chugging after EINTR in mod_proxy_connect


Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1031551&r1=1031550&r2=1031551&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Fri Nov  5 13:12:14 2010
@@ -6,6 +6,9 @@ Changes with Apache 2.3.9
      Fix a denial of service attack against mod_reqtimeout.
      [Stefan Fritsch]
 
+  *) proxy_connect: Don't give up in the middle of a CONNECT tunnel
+     when the child process is starting to exit.  PR50220. [Eric Covener]
+
   *) mod_autoindex: Fix inheritance of mod_autoindex directives into 
      contexts that don't have any mod_autoindex directives. PR47766.
      [Eric Covener]

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c?rev=1031551&r1=1031550&r2=1031551&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c Fri Nov  5 13:12:14 2010
@@ -438,6 +438,9 @@ static int proxy_connect_handler(request
     while (1) { /* Infinite loop until error (one side closes the connection) */
         if ((rv = apr_pollset_poll(pollset, -1, &pollcnt, &signalled))
             != APR_SUCCESS) {
+            if (APR_STATUS_IS_EINTR(rv)) { 
+                continue;
+            }
             apr_socket_close(sock);
             ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "proxy: CONNECT: error apr_poll()");
             return HTTP_INTERNAL_SERVER_ERROR;



Mime
View raw message