diff --git a/src/proxy/tinymitm/proxy.cpp b/src/proxy/tinymitm/proxy.cpp index 18c9a6f..2016b68 100644 --- a/src/proxy/tinymitm/proxy.cpp +++ b/src/proxy/tinymitm/proxy.cpp @@ -103,13 +103,18 @@ struct HttpStream /* platform specific stuff */ -void setNonBlocking(SOCKET s) +void setNonBlocking(SOCKET s, bool enabled) { #ifdef _WIN32 - unsigned long mode = 1; + unsigned long mode = enabled ? 1 : 0; ioctlsocket(s, FIONBIO, &mode); #else - fcntl(s, F_SETFL, fcntl(s, F_GETFL, 0) | O_NONBLOCK); + int flags = fcntl(s, F_GETFL, 0); + if (enabled) + flags |= O_NONBLOCK; + else + flags &= ~O_NONBLOCK; + fcntl(s, F_SETFL, flags); #endif }