You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by st...@hyperreal.org on 2000/02/01 01:10:14 UTC
cvs commit: apache-2.0/src/lib/apr/network_io/win32 sockopt.c
stoddard 00/01/31 16:10:13
Modified: src/lib/apr/network_io/win32 sockopt.c
Log:
Add code to set the socket timeout. Correct some error return codes.
Revision Changes Path
1.6 +12 -4 apache-2.0/src/lib/apr/network_io/win32/sockopt.c
Index: sockopt.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockopt.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- sockopt.c 1999/10/25 23:55:23 1.5
+++ sockopt.c 2000/02/01 00:10:12 1.6
@@ -91,19 +91,27 @@
else
one = 0;
+ if (opt & APR_SO_TIMEOUT) {
+ int timeout = on * 1000; /* Windows needs timeout in mSeconds */
+ sock->timeout = timeout;
+ if (setsockopt(sock->sock, SOL_SOCKET, SO_RCVTIMEO, (char*) &timeout,
+ sizeof(timeout)) == SOCKET_ERROR) {
+ return WSAGetLastError();
+ }
+ }
if (opt & APR_SO_KEEPALIVE) {
if (setsockopt(sock->sock, SOL_SOCKET, SO_KEEPALIVE, (void *)&one, sizeof(int)) == -1) {
- return APR_EEXIST;
+ return WSAGetLastError();
}
}
if (opt & APR_SO_DEBUG) {
if (setsockopt(sock->sock, SOL_SOCKET, SO_DEBUG, (void *)&one, sizeof(int)) == -1) {
- return APR_EEXIST;
+ return WSAGetLastError();
}
}
if (opt & APR_SO_REUSEADDR) {
if (setsockopt(sock->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&one, sizeof(int)) == -1) {
- return APR_EEXIST;
+ return WSAGetLastError();
}
}
if (opt & APR_SO_NONBLOCK) {
@@ -124,7 +132,7 @@
}
}
return APR_SUCCESS;
-}
+}
ap_status_t ap_gethostname(char *buf, int len, ap_context_t *cont)
{