libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit a7b6407cc25d864cb5ce997d6dc693b6d0d2b223
parent 3a0f1ddb107eb8698d597d47295bf074eed31eb4
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Sun, 21 May 2017 17:43:14 +0300

cleanup_connection(): fixed cleanup of suspended connection

Diffstat:
Msrc/microhttpd/connection.c | 22+++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c @@ -2834,17 +2834,6 @@ cleanup_connection (struct MHD_Connection *connection) connection->response = NULL; } MHD_mutex_lock_chk_ (&daemon->cleanup_connection_mutex); - if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) - { - if (connection->connection_timeout == daemon->connection_timeout) - XDLL_remove (daemon->normal_timeout_head, - daemon->normal_timeout_tail, - connection); - else - XDLL_remove (daemon->manual_timeout_head, - daemon->manual_timeout_tail, - connection); - } if (connection->suspended) { DLL_remove (daemon->suspended_connections_head, @@ -2854,6 +2843,17 @@ cleanup_connection (struct MHD_Connection *connection) } else { + if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) + { + if (connection->connection_timeout == daemon->connection_timeout) + XDLL_remove (daemon->normal_timeout_head, + daemon->normal_timeout_tail, + connection); + else + XDLL_remove (daemon->manual_timeout_head, + daemon->manual_timeout_tail, + connection); + } DLL_remove (daemon->connections_head, daemon->connections_tail, connection);