You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by jo...@apache.org on 2012/02/10 15:52:26 UTC

svn commit: r1242798 - /httpd/httpd/trunk/modules/proxy/mod_proxy_http.c

Author: jorton
Date: Fri Feb 10 14:52:25 2012
New Revision: 1242798

URL: http://svn.apache.org/viewvc?rev=1242798&view=rev
Log:
* modules/proxy/mod_proxy_http.c (ap_proxy_http_process_response):
  Treat EAGAIN as an error for a blocking read from the input filter
  stack.

Modified:
    httpd/httpd/trunk/modules/proxy/mod_proxy_http.c

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_http.c?rev=1242798&r1=1242797&r2=1242798&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_http.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_http.c Fri Feb 10 14:52:25 2012
@@ -1964,8 +1964,9 @@ apr_status_t ap_proxy_http_process_respo
 
                     /* ap_get_brigade will return success with an empty brigade
                      * for a non-blocking read which would block: */
-                    if (APR_STATUS_IS_EAGAIN(rv)
-                        || (rv == APR_SUCCESS && APR_BRIGADE_EMPTY(bb))) {
+                    if (mode == APR_NONBLOCK_READ
+                        && (APR_STATUS_IS_EAGAIN(rv)
+                            || (rv == APR_SUCCESS && APR_BRIGADE_EMPTY(bb)))) {
                         /* flush to the client and switch to blocking mode */
                         e = apr_bucket_flush_create(c->bucket_alloc);
                         APR_BRIGADE_INSERT_TAIL(bb, e);