There is a PR (43472, http://issues.apache.org/bugzilla/show_bug.cgi?id=43472)
that the test in is_socket_connected in proxy_util.c whether a backend 
connection
is still alive or not does not work. I created a patch that seems to fix the 
issue
on Solaris 9 (according to the reporter) and on Linux (according to my tests).
Could someone with a Win32 environment available please test if this also works
fine on Windows before I commit to trunk? Thanks.
BTW: I am not sure if EAGAIN will be ever returned by apr_poll but I left it
it in the if statement.



Index: modules/proxy/proxy_util.c
===================================================================
--- modules/proxy/proxy_util.c  (Revision 579251)
+++ modules/proxy/proxy_util.c  (Arbeitskopie)
@@ -2078,7 +2078,7 @@
         else
             return 0;
     }
-    else if (APR_STATUS_IS_EAGAIN(status)) {
+    else if (APR_STATUS_IS_TIMEUP(status) || APR_STATUS_IS_EAGAIN(status)) {
         return 1;
     }
     return 0;

Index: modules/proxy/proxy_util.c
===================================================================
--- modules/proxy/proxy_util.c	(Revision 579251)
+++ modules/proxy/proxy_util.c	(Arbeitskopie)
@@ -2078,7 +2078,7 @@
         else
             return 0;
     }
-    else if (APR_STATUS_IS_EAGAIN(status)) {
+    else if (APR_STATUS_IS_TIMEUP(status) || APR_STATUS_IS_EAGAIN(status)) {
         return 1;
     }
     return 0;

Reply via email to