commit 6c991e0929c3fbbdfa0eee099ce52a2fb850da85
parent 5c71e7550e31cacebc64f1669c28d7f8940e9701
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Sun, 14 May 2017 15:09:10 +0300
Handle resumed connections and closed "upgraded" connections in thread-per-connection mode with select(),
do not use zero delay in MHD_poll_listen_socket() if connections are resumed
Diffstat:
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,7 @@
+Sun May 14 15:05:00 MSK 2017
+ Fixed resuming connections and closing upgraded connections in select()
+ mode with thread-per-connection. -EG
+
Sun May 14 14:49:00 MSK 2017
Removed extra call to resume connections in MHD_run().
Handle resumed connection without delay in epoll mode.
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
@@ -3509,12 +3509,13 @@ MHD_select (struct MHD_Daemon *daemon,
FD_ZERO (&es);
maxsock = MHD_INVALID_SOCKET;
err_state = MHD_NO;
+ if ( (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME)) &&
+ (MHD_YES == resume_suspended_connections (daemon)) &&
+ (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) )
+ may_block = MHD_NO;
+
if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
{
- if ( (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME)) &&
- (MHD_YES == resume_suspended_connections (daemon)) )
- may_block = MHD_NO;
-
/* single-threaded, go over everything */
if (MHD_NO ==
internal_get_fdset2 (daemon,