libmicrohttpd2

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

commit d9c6ed21f422e87205b34ba7965140c385fffc46
parent ee27dba98e5a2d128b4c40e96d20e1babbf1207b
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date:   Thu, 12 Jun 2025 12:45:06 +0200

Fixed compiler warnings

Diffstat:
Msrc/mhd2/daemon_start.c | 5++++-
Msrc/mhd2/events_process.c | 13+++++++------
2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/mhd2/daemon_start.c b/src/mhd2/daemon_start.c @@ -1980,7 +1980,10 @@ allocate_events (struct MHD_Daemon *restrict d) if ((num_elements > d->conns.cfg.count_limit) /* Check for value overflow */ || (mhd_D_HAS_THR_PER_CONN (d))) { - const unsigned int upper_limit = (sizeof(void*) >= 8) ? 4096 : 1024; + const unsigned int upper_limit = (sizeof(void*) >= 8) ? 4096u : 1024u; + + mhd_assert (0 < (int) upper_limit); + mhd_assert (upper_limit == (unsigned int) (size_t) upper_limit); /* Trade neglectable performance penalty for memory saving */ /* Very large amount of new events processed in batches */ diff --git a/src/mhd2/events_process.c b/src/mhd2/events_process.c @@ -1593,7 +1593,7 @@ get_all_net_updates_by_epoll (struct MHD_Daemon *restrict d) // TODO: add listen socket enable/disable /* Minimise amount of data passed from userspace to kernel and back */ - max_events = d->conns.cfg.count_limit; + max_events = (int) d->conns.cfg.count_limit; #ifdef MHD_SUPPORT_THREADS ++max_events; #endif /* MHD_SUPPORT_THREADS */ @@ -1602,9 +1602,8 @@ get_all_net_updates_by_epoll (struct MHD_Daemon *restrict d) /* Make sure that one extra slot used to clearly detect that all events * were gotten. */ ++max_events; - if (0 > max_events) - max_events = (int) (((unsigned int)~((unsigned int) 0)) >> 1); - if (max_events > (int) d->events.data.epoll.num_elements) + if ((0 > max_events) || + (max_events > (int) d->events.data.epoll.num_elements)) max_events = (int) d->events.data.epoll.num_elements; events_processed = 0; @@ -1648,12 +1647,14 @@ get_all_net_updates_by_epoll (struct MHD_Daemon *restrict d) return true; /* All events have been read */ /* Use all buffer for the next getting events round(s) */ - max_events = d->events.data.epoll.num_elements; + max_events = (int) d->events.data.epoll.num_elements; + mhd_assert (0 < max_events); + mhd_assert (d->events.data.epoll.num_elements == (size_t) max_events); max_wait = 0; /* Do not block on the next getting events rounds */ events_processed += (unsigned int) num_events; /* Avoid reading too many events */ } while ((events_processed < d->conns.cfg.count_limit) - || (events_processed < d->conns.cfg.count_limit + 2)); + || (events_processed < d->conns.cfg.count_limit + 2)); return true; }