From c6646ca32507c07eced82f0d5106ac063272ee2c Mon Sep 17 00:00:00 2001 From: Brian Havard Date: Tue, 13 Apr 2010 11:07:29 +0000 Subject: [PATCH] Fix backward compatibility with APR versions less than 2.0 which don't have apr_socket_wait(). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@933547 13f79535-47bb-0310-9956-ffa450edef68 --- modules/filters/mod_reqtimeout.c | 8 ++++++++ modules/proxy/mod_proxy_fdpass.c | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/modules/filters/mod_reqtimeout.c b/modules/filters/mod_reqtimeout.c index cec9e607da..0dad52138c 100644 --- a/modules/filters/mod_reqtimeout.c +++ b/modules/filters/mod_reqtimeout.c @@ -24,6 +24,10 @@ #include "util_filter.h" #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; @@ -218,7 +222,11 @@ static apr_status_t reqtimeout_filter(ap_filter_t *f, } /* ... and wait for more */ +#if APR_MAJOR_VERSION < 2 + rv = apr_wait_for_io_or_timeout(NULL, ccfg->socket, 1); +#else rv = apr_socket_wait(ccfg->socket, APR_WAIT_READ); +#endif if (rv != APR_SUCCESS) break; 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; } -- 2.40.0