aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2016-01-30 15:57:42 +0000
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2016-01-30 15:57:42 +0000
commit6767963266727522027e6afa351f84040ff22757 (patch)
treeff254ace20cba5f28c5a55fc7540ad536b1df054
parenta3bfa8a2d6ec9d552326a1daa2fd68fd9bd43c6f (diff)
downloadlibmicrohttpd-6767963266727522027e6afa351f84040ff22757.tar.gz
libmicrohttpd-6767963266727522027e6afa351f84040ff22757.zip
Fix running select() on W32 with empty fdsets - W32 return error if no socket is marked in fdsets.
-rw-r--r--ChangeLog3
-rw-r--r--src/include/platform_interface.h7
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2302cff3..024ee195 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
1Sat Jan 30 15:49:07 CET 2016
2 Fix running select() with empty fdsets on W32. -EG
3
1Mon Jan 25 13:45:50 CET 2016 4Mon Jan 25 13:45:50 CET 2016
2 Added check test for triggering select() on 5 Added check test for triggering select() on
3 listen socket. -EG 6 listen socket. -EG
diff --git a/src/include/platform_interface.h b/src/include/platform_interface.h
index b5623c38..aa8d7317 100644
--- a/src/include/platform_interface.h
+++ b/src/include/platform_interface.h
@@ -108,7 +108,12 @@ typedef int _MHD_socket_funcs_size;
108#if !defined(MHD_WINSOCK_SOCKETS) 108#if !defined(MHD_WINSOCK_SOCKETS)
109#define MHD_SYS_select_(n,r,w,e,t) select((n),(r),(w),(e),(t)) 109#define MHD_SYS_select_(n,r,w,e,t) select((n),(r),(w),(e),(t))
110#else 110#else
111#define MHD_SYS_select_(n,r,w,e,t) select((int)0,(r),(w),(e),(t)) 111#define MHD_SYS_select_(n,r,w,e,t) \
112 ( (!(r) || ((fd_set*)(r))->fd_count == 0) && \
113 (!(w) || ((fd_set*)(w))->fd_count == 0) && \
114 (!(e) || ((fd_set*)(e))->fd_count == 0) ) ? \
115 ( (!(t)) ? (Sleep((t)->tv_sec * 1000 + (t)->tv_usec / 1000), 0) : 0 ) : \
116 (select((int)0,(r),(w),(e),(t)))
112#endif 117#endif
113 118
114#if defined(HAVE_POLL) 119#if defined(HAVE_POLL)