commit fc3a015216bf5744a75487c75a05e4c73acbb830
parent 29316be58e1fd755fd68a012b09d1fd0eaa1e9f7
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date: Fri, 1 Aug 2025 18:47:53 +0200
Reduced binary size when built without epoll
Diffstat:
4 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/src/mhd2/daemon_add_conn.c b/src/mhd2/daemon_add_conn.c
@@ -558,7 +558,7 @@ internal_add_connection (struct MHD_Daemon *daemon,
mhd_assert (mhd_FD_FITS_DAEMON (daemon, client_socket));
if ((! non_blck) &&
- ((mhd_POLL_TYPE_EPOLL == daemon->events.poll_type) ||
+ (mhd_POLL_TYPE_INT_IS_EPOLL (daemon->events.poll_type) ||
(mhd_WM_INT_EXTERNAL_EVENTS_EDGE == daemon->wmode_int)))
{
mhd_LOG_MSG (daemon, MHD_SC_NONBLOCKING_REQUIRED, \
diff --git a/src/mhd2/daemon_start.c b/src/mhd2/daemon_start.c
@@ -1303,7 +1303,7 @@ daemon_choose_and_preinit_events (struct MHD_Daemon *restrict d,
(d->events.poll_type == (enum mhd_IntPollType) s->poll_syscall) \
|| ((MHD_SPS_AUTO == s->poll_syscall) && \
((mhd_POLL_TYPE_EXT == d->events.poll_type) || \
- (mhd_POLL_TYPE_EPOLL == d->events.poll_type))));
+ mhd_POLL_TYPE_INT_IS_EPOLL (d->events.poll_type))));
/* Check whether the provided parameter is in the range of expected values.
Only block unsupported values. */
@@ -1491,9 +1491,6 @@ daemon_choose_and_preinit_events (struct MHD_Daemon *restrict d,
#ifndef MHD_SUPPORT_POLL
case mhd_POLL_TYPE_POLL:
#endif /* ! MHD_SUPPORT_POLL */
-#ifndef MHD_SUPPORT_EPOLL
- case mhd_POLL_TYPE_EPOLL:
-#endif /* ! MHD_SUPPORT_EPOLL */
case mhd_POLL_TYPE_NOT_SET_YET:
default:
mhd_UNREACHABLE ();
@@ -2012,9 +2009,6 @@ allocate_events (struct MHD_Daemon *restrict d)
#ifndef MHD_SUPPORT_POLL
case mhd_POLL_TYPE_POLL:
#endif /* ! MHD_SUPPORT_POLL */
-#ifndef MHD_SUPPORT_EPOLL
- case mhd_POLL_TYPE_EPOLL:
-#endif /* ! MHD_SUPPORT_EPOLL */
case mhd_POLL_TYPE_NOT_SET_YET:
default:
mhd_UNREACHABLE ();
@@ -2324,9 +2318,6 @@ init_daemon_fds_monitoring (struct MHD_Daemon *restrict d)
#ifndef MHD_SUPPORT_POLL
case mhd_POLL_TYPE_POLL:
#endif /* ! MHD_SUPPORT_POLL */
-#ifndef MHD_SUPPORT_EPOLL
- case mhd_POLL_TYPE_EPOLL:
-#endif /* ! MHD_SUPPORT_EPOLL */
case mhd_POLL_TYPE_NOT_SET_YET:
default:
mhd_UNREACHABLE ();
@@ -2392,9 +2383,6 @@ deinit_daemon_fds_monitoring (struct MHD_Daemon *restrict d)
#ifndef MHD_SUPPORT_POLL
case mhd_POLL_TYPE_POLL:
#endif /* ! MHD_SUPPORT_POLL */
-#ifndef MHD_SUPPORT_EPOLL
- case mhd_POLL_TYPE_EPOLL:
-#endif /* ! MHD_SUPPORT_EPOLL */
case mhd_POLL_TYPE_NOT_SET_YET:
default:
mhd_UNREACHABLE ();
@@ -2780,7 +2768,7 @@ set_d_threading_type (struct MHD_Daemon *restrict d)
case mhd_WM_INT_INTERNAL_EVENTS_THREAD_PER_CONNECTION:
mhd_assert (mhd_WM_INT_HAS_THREADS (d->wmode_int));
mhd_assert (mhd_POLL_TYPE_EXT != d->events.poll_type);
- mhd_assert (mhd_POLL_TYPE_EPOLL != d->events.poll_type);
+ mhd_assert (! mhd_POLL_TYPE_INT_IS_EPOLL (d->events.poll_type));
d->threading.d_type = mhd_DAEMON_TYPE_LISTEN_ONLY;
return MHD_SC_OK;
case mhd_WM_INT_INTERNAL_EVENTS_THREAD_POOL:
diff --git a/src/mhd2/events_process.c b/src/mhd2/events_process.c
@@ -1720,9 +1720,6 @@ process_all_events_and_data (struct MHD_Daemon *restrict d)
#ifndef MHD_SUPPORT_POLL
case mhd_POLL_TYPE_POLL:
#endif /* ! MHD_SUPPORT_POLL */
-#ifndef MHD_SUPPORT_EPOLL
- case mhd_POLL_TYPE_EPOLL:
-#endif /* ! MHD_SUPPORT_EPOLL */
case mhd_POLL_TYPE_NOT_SET_YET:
default:
mhd_UNREACHABLE ();
diff --git a/src/mhd2/mhd_daemon.h b/src/mhd2/mhd_daemon.h
@@ -222,13 +222,26 @@ enum MHD_FIXED_ENUM_ mhd_IntPollType
* Use poll().
*/
mhd_POLL_TYPE_POLL = MHD_SPS_POLL
+#ifdef MHD_SUPPORT_EPOLL
,
/**
* Use epoll.
*/
mhd_POLL_TYPE_EPOLL = MHD_SPS_EPOLL
+#endif /* MHD_SUPPORT_EPOLL */
};
+
+#ifdef MHD_SUPPORT_EPOLL
+/**
+ * Check whether provided mhd_IntPollType value is "epoll"
+ */
+# define mhd_POLL_TYPE_INT_IS_EPOLL(poll_type) \
+ (mhd_POLL_TYPE_EPOLL == poll_type)
+#else
+# define mhd_POLL_TYPE_INT_IS_EPOLL(poll_type) (0)
+#endif
+
#if defined(HAVE_UINTPTR_T)
typedef uintptr_t mhd_SockRelMarker;
#else