aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-03-25 20:44:27 +0100
committerChristian Grothoff <christian@grothoff.org>2017-03-25 20:55:33 +0100
commitb8e9408180f5adf70fb759350c073954084186b7 (patch)
treeecf470e5a08a39def6f75b653eaf309f35d13159
parentbf7418b3d9288e9e0175651a9e3cf3297e197942 (diff)
downloadlibmicrohttpd-b8e9408180f5adf70fb759350c073954084186b7.tar.gz
libmicrohttpd-b8e9408180f5adf70fb759350c073954084186b7.zip
do not fail if MHD_OPTION_THREAD_POOL_SIZE is specified as 0 or 1 in combination with internal polling, that's OK (as a pool size of 0/1 means no pool)
-rw-r--r--src/microhttpd/daemon.c39
-rw-r--r--src/microhttpd/test_upgrade.c16
2 files changed, 29 insertions, 26 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 69180865..f2427902 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -4822,24 +4822,6 @@ parse_options_va (struct MHD_Daemon *daemon,
4822 void *); 4822 void *);
4823 break; 4823 break;
4824 case MHD_OPTION_THREAD_POOL_SIZE: 4824 case MHD_OPTION_THREAD_POOL_SIZE:
4825 if (0 == (daemon->options & MHD_USE_INTERNAL_POLLING_THREAD))
4826 {
4827#ifdef HAVE_MESSAGES
4828 MHD_DLOG (daemon,
4829 _("MHD_OPTION_THREAD_POOL_SIZE option is specified but "
4830 "MHD_USE_INTERNAL_POLLING_THREAD flag is not specified.\n"));
4831#endif
4832 return MHD_NO;
4833 }
4834 if (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
4835 {
4836#ifdef HAVE_MESSAGES
4837 MHD_DLOG (daemon,
4838 _("Both MHD_OPTION_THREAD_POOL_SIZE option and "
4839 "MHD_USE_THREAD_PER_CONNECTION flag are specified.\n"));
4840#endif
4841 return MHD_NO;
4842 }
4843 daemon->worker_pool_size = va_arg (ap, 4825 daemon->worker_pool_size = va_arg (ap,
4844 unsigned int); 4826 unsigned int);
4845 if (0 == daemon->worker_pool_size) 4827 if (0 == daemon->worker_pool_size)
@@ -4868,6 +4850,27 @@ parse_options_va (struct MHD_Daemon *daemon,
4868#endif 4850#endif
4869 return MHD_NO; 4851 return MHD_NO;
4870 } 4852 }
4853 else
4854 {
4855 if (0 == (daemon->options & MHD_USE_INTERNAL_POLLING_THREAD))
4856 {
4857#ifdef HAVE_MESSAGES
4858 MHD_DLOG (daemon,
4859 _("MHD_OPTION_THREAD_POOL_SIZE option is specified but "
4860 "MHD_USE_INTERNAL_POLLING_THREAD flag is not specified.\n"));
4861#endif
4862 return MHD_NO;
4863 }
4864 if (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION))
4865 {
4866#ifdef HAVE_MESSAGES
4867 MHD_DLOG (daemon,
4868 _("Both MHD_OPTION_THREAD_POOL_SIZE option and "
4869 "MHD_USE_THREAD_PER_CONNECTION flag are specified.\n"));
4870#endif
4871 return MHD_NO;
4872 }
4873 }
4871 break; 4874 break;
4872#ifdef HTTPS_SUPPORT 4875#ifdef HTTPS_SUPPORT
4873 case MHD_OPTION_HTTPS_MEM_KEY: 4876 case MHD_OPTION_HTTPS_MEM_KEY:
diff --git a/src/microhttpd/test_upgrade.c b/src/microhttpd/test_upgrade.c
index fe72a70f..e96009c3 100644
--- a/src/microhttpd/test_upgrade.c
+++ b/src/microhttpd/test_upgrade.c
@@ -990,14 +990,14 @@ test_upgrade (int flags,
990 990
991 if (!test_tls) 991 if (!test_tls)
992 d = MHD_start_daemon (flags | MHD_USE_ERROR_LOG | MHD_ALLOW_UPGRADE, 992 d = MHD_start_daemon (flags | MHD_USE_ERROR_LOG | MHD_ALLOW_UPGRADE,
993 1080, 993 1080,
994 NULL, NULL, 994 NULL, NULL,
995 &ahc_upgrade, NULL, 995 &ahc_upgrade, NULL,
996 MHD_OPTION_URI_LOG_CALLBACK, &log_cb, NULL, 996 MHD_OPTION_URI_LOG_CALLBACK, &log_cb, NULL,
997 MHD_OPTION_NOTIFY_COMPLETED, &notify_completed_cb, NULL, 997 MHD_OPTION_NOTIFY_COMPLETED, &notify_completed_cb, NULL,
998 MHD_OPTION_NOTIFY_CONNECTION, &notify_connection_cb, NULL, 998 MHD_OPTION_NOTIFY_CONNECTION, &notify_connection_cb, NULL,
999 MHD_OPTION_THREAD_POOL_SIZE, pool, 999 MHD_OPTION_THREAD_POOL_SIZE, pool,
1000 MHD_OPTION_END); 1000 MHD_OPTION_END);
1001#ifdef HTTPS_SUPPORT 1001#ifdef HTTPS_SUPPORT
1002 else 1002 else
1003 d = MHD_start_daemon (flags | MHD_USE_ERROR_LOG | MHD_ALLOW_UPGRADE | MHD_USE_TLS, 1003 d = MHD_start_daemon (flags | MHD_USE_ERROR_LOG | MHD_ALLOW_UPGRADE | MHD_USE_TLS,