Oh buggers... Yep. apr_poll in most impls returns APR_TIMEUP
if the time limit expires (since poll returns 0).
Can't test on Windows...
On Sep 26, 2007, at 5:40 AM, Ruediger Pluem wrote:
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;