commit 57959fe244c4335252f430215238de9e45e342ff
parent 04ed6866020673c335ca000881669c9610d1a006
Author: Yersa Nordman <yersa@finwo.nl>
Date: Sun, 22 Oct 2023 22:19:47 +0200
Add windows implementation for setting socket to non-blocking
Diffstat:
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/fnet.c b/src/fnet.c
@@ -76,12 +76,22 @@ FNET_RETURNCODE settcpnodelay(FNET_SOCKET fd) {
}
FNET_RETURNCODE setnonblock(FNET_SOCKET fd) {
+ if (fd < 0) return FNET_RETURNCODE_ERROR;
+#if defined(_WIN32) || defined(_WIN64)
+ unsigned long mode = 1;
+ if (ioctlsocket(fd, FIONBIO, &mode) == 0) {
+ return FNET_RETURNCODE_OK;
+ } else {
+ return FNET_RETURNCODE_ERROR;
+ }
+#else
int flags = fcntl(fd, F_GETFL, 0);
if (flags < 0) return flags;
if(fcntl(fd, F_SETFL, flags | O_NONBLOCK)) {
return FNET_RETURNCODE_ERROR;
}
return FNET_RETURNCODE_OK;
+#endif
}
int64_t _fnet_now() {