From 0571f7bf52614ac091b9ae37a739539f4dbc0a5a Mon Sep 17 00:00:00 2001 From: "Evgeny Grin (Karlson2k)" Date: Fri, 24 Mar 2017 15:44:27 +0300 Subject: Check for invalid combinations of MHD_OPTION_THREAD_POOL_SIZE and daemon flags. --- src/microhttpd/daemon.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index cbf57773..296c0ee8 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c @@ -4822,6 +4822,24 @@ parse_options_va (struct MHD_Daemon *daemon, void *); break; case MHD_OPTION_THREAD_POOL_SIZE: + if (0 == (daemon->options & MHD_USE_INTERNAL_POLLING_THREAD)) + { +#ifdef HAVE_MESSAGES + MHD_DLOG (daemon, + _("MHD_OPTION_THREAD_POOL_SIZE option is specified but " + "MHD_USE_INTERNAL_POLLING_THREAD flag is not specified.\n")); +#endif + return MHD_NO; + } + if (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) + { +#ifdef HAVE_MESSAGES + MHD_DLOG (daemon, + _("Both MHD_OPTION_THREAD_POOL_SIZE option and " + "MHD_USE_THREAD_PER_CONNECTION flag are specified.\n")); +#endif + return MHD_NO; + } daemon->worker_pool_size = va_arg (ap, unsigned int); if (0 == daemon->worker_pool_size) -- cgit v1.2.3