diff --git a/src/Mayaqua/Network.c b/src/Mayaqua/Network.c index d193e121..2144b802 100644 --- a/src/Mayaqua/Network.c +++ b/src/Mayaqua/Network.c @@ -8029,38 +8029,17 @@ bool IsSubnetMask32(UINT ip) // Turn on and off the non-blocking mode of the socket void UnixSetSocketNonBlockingMode(int fd, bool nonblock) { - UINT flag = 0; // Validate arguments if (fd == INVALID_SOCKET) { return; } - if (nonblock) + const int flags = fcntl(fd, F_GETFL, 0); + if (flags != -1) { - flag = 1; + fcntl(fd, F_SETFL, nonblock ? flags | O_NONBLOCK : flags & ~O_NONBLOCK); } - -#ifdef FIONBIO - ioctl(fd, FIONBIO, &flag); -#else // FIONBIO - { - int flag = fcntl(fd, F_GETFL, 0); - if (flag != -1) - { - if (nonblock) - { - flag |= O_NONBLOCK; - } - else - { - flag = flag & ~O_NONBLOCK; - - fcntl(fd, F_SETFL, flag); - } - } - } -#endif // FIONBIO } // Do Nothing