46#if defined(HTTPS_SUPPORT) && defined(UPGRADE_SUPPORT)
60 if ( (0 ==
urh->in_buffer_size) &&
61 (0 ==
urh->out_buffer_size) &&
62 (0 ==
urh->in_buffer_used) &&
63 (0 ==
urh->out_buffer_used) )
71 (
urh->in_buffer_used <
urh->in_buffer_size) )
75 (
urh->out_buffer_used <
urh->out_buffer_size) )
79 (
urh->out_buffer_used > 0) )
83 (
urh->in_buffer_used > 0) )
127 _ (
"Call to epoll_wait failed: %s\n"),
138 if (
urh->clean_ready)
159 if (!
urh->in_eready_list)
165 daemon->eready_urh_tail,
167 urh->in_eready_list =
true;
172 prev = daemon->eready_urh_tail;
173 while (
NULL != (pos = prev))
180 daemon->eready_urh_tail,
182 pos->in_eready_list =
false;
185 if ( (0 == pos->in_buffer_size) &&
186 (0 == pos->out_buffer_size) &&
187 (0 == pos->in_buffer_used) &&
188 (0 == pos->out_buffer_used) )
191 pos->clean_ready =
true;
219#if defined(HTTPS_SUPPORT) && defined(UPGRADE_SUPPORT)
231#if defined(HTTPS_SUPPORT) && defined(UPGRADE_SUPPORT)
235 if (-1 == daemon->epoll_fd)
242 (! daemon->listen_socket_in_epoll) &&
246 event.data.ptr = daemon;
255 _ (
"Call to epoll_ctl failed: %s\n"),
260 daemon->listen_socket_in_epoll =
true;
263 (daemon->listen_socket_in_epoll) )
269 MHD_PANIC (
"Failed to remove listen FD from epoll set.\n");
270 daemon->listen_socket_in_epoll =
false;
273#if defined(HTTPS_SUPPORT) && defined(UPGRADE_SUPPORT)
274 if ( (! daemon->upgrade_fd_in_epoll) &&
275 (-1 != daemon->epoll_upgrade_fd) )
281 daemon->epoll_upgrade_fd,
287 _ (
"Call to epoll_ctl failed: %s\n"),
292 daemon->upgrade_fd_in_epoll =
true;
295 if ( (daemon->listen_socket_in_epoll) &&
306 MHD_PANIC (
_ (
"Failed to remove listen FD from epoll set.\n"));
307 daemon->listen_socket_in_epoll =
false;
356 _ (
"Call to epoll_wait failed: %s\n"),
367#if defined(HTTPS_SUPPORT) && defined(UPGRADE_SUPPORT)
376 if (daemon->epoll_itc_marker ==
events[
i].data.ptr)
451#if defined(HTTPS_SUPPORT) && defined(UPGRADE_SUPPORT)
457 prev = daemon->eready_tail;
458 while (
NULL != (pos = prev))
462 0 != (pos->epoll_state
464 0 != (pos->epoll_state
466 0 != (pos->epoll_state
494 while (
NULL != (pos = prev))
504 while (
NULL != (pos = prev))
#define MHD_connection_finish_forward_(conn)
enum MHD_StatusCode MHD_accept_connection_(struct MHD_Daemon *daemon)
functions to add connection to our active set
int MHD_connection_call_handlers_(struct MHD_Connection *con, bool read_ready, bool write_ready, bool force_close)
bool MHD_request_handle_idle_(struct MHD_Request *request)
function to call event handlers based on event mask
complete upgrade socket forwarding operation in TLS mode
non-public functions provided by daemon_epoll.c
enum MHD_StatusCode MHD_daemon_get_timeout(struct MHD_Daemon *daemon, MHD_UNSIGNED_LONG_LONG *timeout)
@ MHD_EPOLL_STATE_SUSPENDED
@ MHD_EPOLL_STATE_IN_EREADY_EDLL
@ MHD_EPOLL_STATE_READ_READY
@ MHD_EPOLL_STATE_WRITE_READY
#define EDLL_insert(head, tail, element)
#define EDLL_remove(head, tail, element)
#define MHD_socket_strerr_(err)
#define MHD_socket_last_strerr_()
#define MHD_socket_get_error_()
#define MHD_SCKT_ERR_IS_EINTR_(err)
MHD internal shared structures.
@ MHD_EVENT_LOOP_INFO_READ
@ MHD_EVENT_LOOP_INFO_WRITE
@ MHD_EVENT_LOOP_INFO_CLEANUP
#define MHD_UNSIGNED_LONG_LONG
#define MHD_INVALID_SOCKET
void MHD_request_resume(struct MHD_Request *request)
bool MHD_resume_suspended_connections_(struct MHD_Daemon *daemon)
implementation of MHD_request_resume()
struct MHD_Connection * prevX
struct MHD_Request request
struct MHD_Connection * prev
struct MHD_Daemon * daemon
bool data_already_pending
struct MHD_Connection * manual_timeout_tail
bool disallow_suspend_resume
struct MHD_Connection * normal_timeout_tail
unsigned int global_connection_limit
size_t read_buffer_offset
enum MHD_RequestEventLoopInfo event_loop_info
enum MHD_REQUEST_STATE state
function to process upgrade activity (over TLS)