summaryrefslogtreecommitdiff
path: root/sockcompat.h
diff options
context:
space:
mode:
authorMichael Grunder <michael.grunder@gmail.com>2022-09-03 12:39:57 -0700
committerGitHub <noreply@github.com>2022-09-03 12:39:57 -0700
commit61b5b299f0ac4f0efbe11a45716e06a9c35f37b7 (patch)
treeaa27e6e89ac46f0fc8f1032c488924f47fcfeedc /sockcompat.h
parentfce8abc1c19ab731f5c84797aa71b4d49921913f (diff)
Use a windows specific keepalive function. (#1104)
Use a windows specific keepalive function. While it is possible to toggle `TCP_KEEPALIVE` in windows via setsockopt, you have to use `WSAIoctl` to set the interval. Since `WSAIoctl` can actually do all of this in one call (toggle the option, and set the corresponding interval), just use that in Windows and avoid the call to `setsockopt` alltogether. Fixes: #1100
Diffstat (limited to 'sockcompat.h')
-rw-r--r--sockcompat.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/sockcompat.h b/sockcompat.h
index 85810e8..1aaf23f 100644
--- a/sockcompat.h
+++ b/sockcompat.h
@@ -50,6 +50,7 @@
#include <ws2tcpip.h>
#include <stddef.h>
#include <errno.h>
+#include <Mstcpip.h>
#ifdef _MSC_VER
typedef long long ssize_t;
@@ -71,6 +72,8 @@ ssize_t win32_send(SOCKET sockfd, const void *buf, size_t len, int flags);
typedef ULONG nfds_t;
int win32_poll(struct pollfd *fds, nfds_t nfds, int timeout);
+int win32_redisKeepAlive(SOCKET sockfd, int interval_ms);
+
#ifndef REDIS_SOCKCOMPAT_IMPLEMENTATION
#define getaddrinfo(node, service, hints, res) win32_getaddrinfo(node, service, hints, res)
#undef gai_strerror