Win32: Remove timeout_ms member from apr_socket_t.
* include/arch/win32/apr_arch_networkio.h
(apr_socket_t): Remove timeout_ms.
* network_io/win32/sendrecv.c
(apr_socket_sendfile): Use apr_wait_for_single_object() to wait for
sock->timeout.
* network_io/win32/sockopt.c
(apr_socket_timeout_set): Use local variable instead of sock->timeout_ms.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1920120 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/include/arch/win32/apr_arch_networkio.h b/include/arch/win32/apr_arch_networkio.h
index a9199c4..4f69fd1 100644
--- a/include/arch/win32/apr_arch_networkio.h
+++ b/include/arch/win32/apr_arch_networkio.h
@@ -35,7 +35,6 @@
int protocol;
apr_sockaddr_t *local_addr;
apr_sockaddr_t *remote_addr;
- int timeout_ms; /* MUST MATCH if timeout > 0 */
apr_interval_time_t timeout;
apr_int32_t disconnected;
int local_port_unknown;
diff --git a/network_io/win32/sendrecv.c b/network_io/win32/sendrecv.c
index d982017..f55912b 100644
--- a/network_io/win32/sendrecv.c
+++ b/network_io/win32/sendrecv.c
@@ -370,9 +370,8 @@
if ((status == APR_FROM_OS_ERROR(ERROR_IO_PENDING)) ||
(status == APR_FROM_OS_ERROR(WSA_IO_PENDING)))
{
- rv = WaitForSingleObject(sock->overlapped->hEvent,
- (DWORD)(sock->timeout >= 0
- ? sock->timeout_ms : INFINITE));
+ rv = apr_wait_for_single_object(sock->overlapped->hEvent, sock->timeout);
+
if (rv == WAIT_OBJECT_0) {
status = APR_SUCCESS;
if (!WSAGetOverlappedResult(sock->socketdes,
diff --git a/network_io/win32/sockopt.c b/network_io/win32/sockopt.c
index 780b5bd..b0d9a73 100644
--- a/network_io/win32/sockopt.c
+++ b/network_io/win32/sockopt.c
@@ -72,13 +72,13 @@
if (sock->timeout != t)
{
/* Win32 timeouts are in msec, represented as int */
- sock->timeout_ms = (int)apr_time_as_msec(t);
+ int timeout_ms = (int)apr_time_as_msec(t);
setsockopt(sock->socketdes, SOL_SOCKET, SO_RCVTIMEO,
- (char *) &sock->timeout_ms,
- sizeof(sock->timeout_ms));
+ (char *) &timeout_ms,
+ sizeof(timeout_ms));
setsockopt(sock->socketdes, SOL_SOCKET, SO_SNDTIMEO,
- (char *) &sock->timeout_ms,
- sizeof(sock->timeout_ms));
+ (char *) &timeout_ms,
+ sizeof(timeout_ms));
}
}
else if (t < 0) {