From 7a1917d86fc5fa377a64317a37ab57cf3382b4b3 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Thu, 25 Nov 2010 01:20:08 +0100 Subject: [PATCH] Make SetNonBlock and SetSockFlags work on mingw --- src/node_net.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/node_net.cc b/src/node_net.cc index c0b7951..a86e2bb 100644 --- a/src/node_net.cc +++ b/src/node_net.cc @@ -74,14 +74,25 @@ static inline bool SetCloseOnExec(int fd) { static inline bool SetNonBlock(int fd) { +#ifdef __MINGW32__ + unsigned long value = 1; + return (ioctlsocket(fd, FIONBIO, &value)); +#else // __POSIX__ return (fcntl(fd, F_SETFL, O_NONBLOCK) != -1); +#endif } static inline bool SetSockFlags(int fd) { +#ifdef __MINGW32__ + int flags = 1; + setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&flags, sizeof(flags)); + return SetNonBlock(fd); +#else // __POSIX__ int flags = 1; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&flags, sizeof(flags)); return SetNonBlock(fd) && SetCloseOnExec(fd); +#endif } -- 2.7.4