libmicrohttpd2

HTTP server C library (MHD 2.x, alpha)
Log | Files | Refs | README | LICENSE

commit 483c1890dde3a1c8f1054657a14b1498f2ab2fc7
parent f994a286234c0bd8a0670cd1ae32ce0cff4e54fd
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date:   Wed, 31 Dec 2025 12:10:18 +0100

Make sure that externally added connections are processed without delay

Diffstat:
Msrc/mhd2/events_process.c | 12++++++++++++
1 file changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/mhd2/events_process.c b/src/mhd2/events_process.c @@ -265,6 +265,16 @@ mhd_daemon_get_wait_max (const struct MHD_Daemon *restrict d) #endif return 0; } + if (NULL != mhd_DLINKEDL_GET_FIRST (&(d->events.act_req.ext_added.worker), + queue)) + { +#ifdef mhd_DEBUG_POLLING_FDS + fprintf (stderr, + "### mhd_daemon_get_wait_max(daemon) -> zero " + "(externally added connection(s) pending)\n"); +#endif + return 0; + } ret = mhd_daemon_get_wait_erliest_timeout (d); @@ -1958,6 +1968,8 @@ process_all_events_and_data (struct MHD_Daemon *restrict d) break; } + mhd_daemon_process_ext_added_conns (d); + if (d->events.accept_pending && ! d->conns.block_new) d->events.accept_pending = ! daemon_accept_new_conns (d);