You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by sf...@apache.org on 2010/04/18 15:34:37 UTC

svn commit: r935339 - /httpd/httpd/trunk/modules/filters/mod_reqtimeout.c

Author: sf
Date: Sun Apr 18 13:34:37 2010
New Revision: 935339

URL: http://svn.apache.org/viewvc?rev=935339&view=rev
Log:
Replace apr_wait_for_io_or_timeout with apr_poll, to (hopefully) allow
mod_reqtimeout to work under windows with apr 1.x

Modified:
    httpd/httpd/trunk/modules/filters/mod_reqtimeout.c

Modified: httpd/httpd/trunk/modules/filters/mod_reqtimeout.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/filters/mod_reqtimeout.c?rev=935339&r1=935338&r2=935339&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/filters/mod_reqtimeout.c (original)
+++ httpd/httpd/trunk/modules/filters/mod_reqtimeout.c Sun Apr 18 13:34:37 2010
@@ -25,9 +25,6 @@
 #define APR_WANT_STRFUNC
 #include "apr_strings.h"
 #include "apr_version.h"
-#if APR_MAJOR_VERSION < 2
-#include "apr_support.h"
-#endif
 
 module AP_MODULE_DECLARE_DATA reqtimeout_module;
 
@@ -186,6 +183,11 @@ static apr_status_t reqtimeout_filter(ap
         apr_off_t remaining = HUGE_STRING_LEN;
         do {
             apr_off_t bblen;
+#if APR_MAJOR_VERSION < 2
+            apr_int32_t nsds;
+            apr_interval_time_t poll_timeout;
+            apr_pollfd_t pollset;
+#endif
 
             rv = ap_get_brigade(f->next, bb, AP_MODE_GETLINE, APR_NONBLOCK_READ, remaining);
             if (APR_STATUS_IS_EAGAIN(rv)) {
@@ -223,7 +225,12 @@ static apr_status_t reqtimeout_filter(ap
 
             /* ... and wait for more */
 #if APR_MAJOR_VERSION < 2
-            rv = apr_wait_for_io_or_timeout(NULL, ccfg->socket, 1);
+            pollset.p = f->c->pool;
+            pollset.desc_type = APR_POLL_SOCKET;
+            pollset.reqevents = APR_POLLIN|APR_POLLHUP;
+            pollset.desc.s = ccfg->socket;
+            apr_socket_timeout_get(ccfg->socket, &poll_timeout);
+            rv = apr_poll(&pollset, 1, &nsds, poll_timeout);
 #else
             rv = apr_socket_wait(ccfg->socket, APR_WAIT_READ);
 #endif