aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2016-01-21 17:37:41 +0000
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2016-01-21 17:37:41 +0000
commitdcebe56be139a0b4dbc4926c1d95e6dc4972ab67 (patch)
treec67ba94945b20cc6c309189cd74b4c5641a6a079
parent3959a99922d5bf358ec96ba2efe5e13198918ac8 (diff)
downloadlibmicrohttpd-dcebe56be139a0b4dbc4926c1d95e6dc4972ab67.tar.gz
libmicrohttpd-dcebe56be139a0b4dbc4926c1d95e6dc4972ab67.zip
Fixed making sockets non-blocking.
-rw-r--r--src/microhttpd/daemon.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 1c86057f..e313959e 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -184,10 +184,10 @@ make_nonblocking (struct MHD_Daemon *daemon,
184#else /* MHD_POSIX_SOCKETS */ 184#else /* MHD_POSIX_SOCKETS */
185 int flags; 185 int flags;
186 186
187 flags = fcntl (sock, F_GETFD); 187 flags = fcntl (sock, F_GETFL);
188 if ( ( (-1 == flags) || 188 if ( ( (-1 == flags) ||
189 ( (flags != (flags | O_NONBLOCK)) && 189 ( (flags != (flags | O_NONBLOCK)) &&
190 (0 != fcntl (sock, F_SETFD, flags | O_NONBLOCK)) ) ) ) 190 (0 != fcntl (sock, F_SETFL, flags | O_NONBLOCK)) ) ) )
191 { 191 {
192#ifdef HAVE_MESSAGES 192#ifdef HAVE_MESSAGES
193 MHD_DLOG (daemon, 193 MHD_DLOG (daemon,
@@ -1904,24 +1904,8 @@ static void
1904make_nonblocking_noninheritable (struct MHD_Daemon *daemon, 1904make_nonblocking_noninheritable (struct MHD_Daemon *daemon,
1905 MHD_socket sock) 1905 MHD_socket sock)
1906{ 1906{
1907#ifdef MHD_WINSOCK_SOCKETS
1908 (void)make_nonblocking (daemon, sock); 1907 (void)make_nonblocking (daemon, sock);
1909 (void)make_noninheritable (daemon, sock); 1908 (void)make_noninheritable (daemon, sock);
1910#else
1911 int flags;
1912
1913 flags = fcntl (sock, F_GETFD);
1914 if ( ( (-1 == flags) ||
1915 ( (flags != (flags | O_NONBLOCK | FD_CLOEXEC)) &&
1916 (0 != fcntl (sock, F_SETFD, flags | O_NONBLOCK | FD_CLOEXEC)) ) ) )
1917 {
1918#ifdef HAVE_MESSAGES
1919 MHD_DLOG (daemon,
1920 "Failed to make socket non-blocking non-inheritable: %s\n",
1921 MHD_socket_last_strerr_ ());
1922#endif
1923 }
1924#endif
1925} 1909}
1926 1910
1927 1911