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;