summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbnicholes <bnicholes@13f79535-47bb-0310-9956-ffa450edef68>2005-01-18 21:56:37 +0000
committerbnicholes <bnicholes@13f79535-47bb-0310-9956-ffa450edef68>2005-01-18 21:56:37 +0000
commit4b9d01b831925846af1470c1c4ce6a3c78f6a017 (patch)
treee7dc4fc9586126fb9027e1e64cfadea895861608
parent6ad5dfbe6dea63b9c20151a19730dbf9527ded96 (diff)
downloadlibapr-4b9d01b831925846af1470c1c4ce6a3c78f6a017.tar.gz
Implement APR_TCP_DEFER_ACCEPT for NetWare and Win32
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@125552 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--network_io/win32/sockopt.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/network_io/win32/sockopt.c b/network_io/win32/sockopt.c
index 05f32b81e..be446b0db 100644
--- a/network_io/win32/sockopt.c
+++ b/network_io/win32/sockopt.c
@@ -148,6 +148,21 @@ APR_DECLARE(apr_status_t) apr_socket_opt_set(apr_socket_t *sock,
}
break;
}
+ case APR_TCP_DEFER_ACCEPT:
+#if defined(TCP_DEFER_ACCEPT)
+ if (apr_is_option_set(sock, APR_TCP_DEFER_ACCEPT) != on) {
+ int optlevel = IPPROTO_TCP;
+ int optname = TCP_DEFER_ACCEPT;
+
+ if (setsockopt(sock->socketdes, optlevel, optname,
+ (void *)&on, sizeof(int)) == -1) {
+ return errno;
+ }
+ apr_set_option(sock, APR_TCP_DEFER_ACCEPT, on);
+ }
+#else
+ return APR_ENOTIMPL;
+#endif
case APR_TCP_NODELAY:
if (apr_is_option_set(sock, APR_TCP_NODELAY) != on) {
int optlevel = IPPROTO_TCP;