summaryrefslogtreecommitdiffstats
path: root/modules/proxy
diff options
context:
space:
mode:
Diffstat (limited to 'modules/proxy')
-rw-r--r--modules/proxy/mod_proxy_fdpass.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/proxy/mod_proxy_fdpass.c b/modules/proxy/mod_proxy_fdpass.c
index bac014fcee..542dfb3942 100644
--- a/modules/proxy/mod_proxy_fdpass.c
+++ b/modules/proxy/mod_proxy_fdpass.c
@@ -24,6 +24,12 @@
#error This module only works on unix platforms with the correct OS support
#endif
+#include "apr_version.h"
+#if APR_MAJOR_VERSION < 2
+/* for apr_wait_for_io_or_timeout */
+#include "apr_support.h"
+#endif
+
#include "mod_proxy_fdpass.h"
module AP_MODULE_DECLARE_DATA proxy_fdpass_module;
@@ -73,7 +79,12 @@ static apr_status_t socket_connect_un(apr_socket_t *sock,
if ((rv == -1) && (errno == EINPROGRESS || errno == EALREADY)
&& (t > 0)) {
+#if APR_MAJOR_VERSION < 2
+ rv = apr_wait_for_io_or_timeout(NULL, sock, 0);
+#else
rv = apr_socket_wait(sock, APR_WAIT_WRITE);
+#endif
+
if (rv != APR_SUCCESS) {
return rv;
}