diff options
Diffstat (limited to 'src/microhttpd/connection.c')
-rw-r--r-- | src/microhttpd/connection.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c index 9c6403fd..6b1ad54e 100644 --- a/src/microhttpd/connection.c +++ b/src/microhttpd/connection.c | |||
@@ -5301,10 +5301,20 @@ MHD_connection_handle_idle (struct MHD_Connection *connection) | |||
5301 | enum MHD_Result | 5301 | enum MHD_Result |
5302 | MHD_connection_epoll_update_ (struct MHD_Connection *connection) | 5302 | MHD_connection_epoll_update_ (struct MHD_Connection *connection) |
5303 | { | 5303 | { |
5304 | struct MHD_Daemon *daemon = connection->daemon; | 5304 | struct MHD_Daemon *const daemon = connection->daemon; |
5305 | 5305 | ||
5306 | if ( (0 != (daemon->options & MHD_USE_EPOLL)) && | 5306 | mhd_assert (0 != (daemon->options & MHD_USE_EPOLL)); |
5307 | (0 == (connection->epoll_state & MHD_EPOLL_STATE_IN_EPOLL_SET)) && | 5307 | |
5308 | if ((0 != (MHD_EVENT_LOOP_INFO_PROCESS & connection->event_loop_info)) && | ||
5309 | (0 == (connection->epoll_state & MHD_EPOLL_STATE_IN_EREADY_EDLL))) | ||
5310 | { | ||
5311 | /* Make sure that connection waiting for processing will be processed */ | ||
5312 | EDLL_insert (daemon->eready_head, | ||
5313 | daemon->eready_tail, | ||
5314 | connection); | ||
5315 | } | ||
5316 | |||
5317 | if ( (0 == (connection->epoll_state & MHD_EPOLL_STATE_IN_EPOLL_SET)) && | ||
5308 | (0 == (connection->epoll_state & MHD_EPOLL_STATE_SUSPENDED)) && | 5318 | (0 == (connection->epoll_state & MHD_EPOLL_STATE_SUSPENDED)) && |
5309 | ( ( (MHD_EVENT_LOOP_INFO_WRITE == connection->event_loop_info) && | 5319 | ( ( (MHD_EVENT_LOOP_INFO_WRITE == connection->event_loop_info) && |
5310 | (0 == (connection->epoll_state & MHD_EPOLL_STATE_WRITE_READY))) || | 5320 | (0 == (connection->epoll_state & MHD_EPOLL_STATE_WRITE_READY))) || |