commit 7922bbd7a9561fc3f8ebd6f5cecdc288dcd4457f
parent 3eea8aaaa0ce1cdf4e0ca3cb5f1272612bd1d571
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 7 Aug 2026 22:24:52 +0200
release v1.0.10
Diffstat:
6 files changed, 210 insertions(+), 183 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Aug 7 10:15:01 PM CEST 2026
+ Fix race in thread-per-connection mode on wake-up signal
+ between daemon and thread that could result in lost wake-ups
+ and thus connections that did not finish processing.
+ Fix rare assertion failure in relation to suspend-and-resume
+ processing (harmless if assertions were turned off).
+ Releasing GNU libmicrohttpd 1.0.10. -CG
+
Thu Jul 30 05:32:00 PM CEST 2026
Enfocing a minimal size on the PSK.
Fix support for red zones in memorypool.
diff --git a/NEWS b/NEWS
@@ -1,3 +1,11 @@
+Fri Aug 7 10:15:01 PM CEST 2026
+Released GNU libmicrohttpd 1.0.10.
+
+ This is a bugfix release, fixing minor bugs
+ and expanding the test suite.
+
+ -- Christian Grothoff
+
Thu Jul 30 05:34:18 PM CEST 2026
Released GNU libmicrohttpd 1.0.9.
diff --git a/configure.ac b/configure.ac
@@ -23,7 +23,7 @@
#
AC_PREREQ([2.64])
LT_PREREQ([2.4.0])
-AC_INIT([GNU libmicrohttpd],[1.0.9],[libmicrohttpd@gnu.org])
+AC_INIT([GNU libmicrohttpd],[1.0.10],[libmicrohttpd@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
MHD_AUX_DIR='build-aux' # Must be set to the same value as in the previous line
AC_CONFIG_HEADERS([MHD_config.h])
@@ -31,7 +31,7 @@ AC_CONFIG_MACRO_DIR([m4])
m4_pattern_forbid([^_?MHD_[A-Z_]+_CC_])dnl
LIB_VERSION_CURRENT=74
-LIB_VERSION_REVISION=7
+LIB_VERSION_REVISION=8
LIB_VERSION_AGE=62
AC_SUBST([LIB_VERSION_CURRENT])
AC_SUBST([LIB_VERSION_REVISION])
diff --git a/po/libmicrohttpd.pot b/po/libmicrohttpd.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: GNU libmicrohttpd 1.0.9\n"
+"Project-Id-Version: GNU libmicrohttpd 1.0.10\n"
"Report-Msgid-Bugs-To: libmicrohttpd@gnu.org\n"
-"POT-Creation-Date: 2026-07-30 17:35+0200\n"
+"POT-Creation-Date: 2026-08-07 22:20+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -62,8 +62,8 @@ msgid "Wrong error code value"
msgstr ""
#: src/microhttpd/connection.c:1403 src/microhttpd/connection.c:1422
-#: src/microhttpd/daemon.c:3360 src/microhttpd/daemon.c:4187
-#: src/microhttpd/daemon.c:9157
+#: src/microhttpd/daemon.c:3457 src/microhttpd/daemon.c:4318
+#: src/microhttpd/daemon.c:9290
msgid "Failed to remove FD from epoll set.\n"
msgstr ""
@@ -391,15 +391,15 @@ msgstr ""
msgid "Closing connection (failed to create response footer)."
msgstr ""
-#: src/microhttpd/connection.c:7997 src/microhttpd/daemon.c:3065
-#: src/microhttpd/daemon.c:5647 src/microhttpd/daemon.c:5681
-#: src/microhttpd/daemon.c:7591 src/microhttpd/daemon.c:7610
+#: src/microhttpd/connection.c:7997 src/microhttpd/daemon.c:3162
+#: src/microhttpd/daemon.c:5780 src/microhttpd/daemon.c:5814
+#: src/microhttpd/daemon.c:7724 src/microhttpd/daemon.c:7743
#: src/microhttpd/response.c:2078 src/microhttpd/response.c:2104
#, c-format
msgid "Call to epoll_ctl failed: %s\n"
msgstr ""
-#: src/microhttpd/connection.c:8161 src/microhttpd/daemon.c:6816
+#: src/microhttpd/connection.c:8161 src/microhttpd/daemon.c:6949
#, c-format
msgid ""
"The specified connection timeout (%u) is too large. Maximum allowed value "
@@ -545,7 +545,7 @@ msgid ""
"unsupported.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1261 src/microhttpd/daemon.c:4777
+#: src/microhttpd/daemon.c:1261 src/microhttpd/daemon.c:4910
#, c-format
msgid ""
"%s() called with fd_setsize (%u) less than value set by "
@@ -553,7 +553,7 @@ msgid ""
"MHD_OPTION_APP_FD_SETSIZE with the correct value.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1270 src/microhttpd/daemon.c:4786
+#: src/microhttpd/daemon.c:1270 src/microhttpd/daemon.c:4919
#, c-format
msgid ""
"%s() called with fd_setsize (%u) less than FD_SETSIZE used by MHD (%d). Some "
@@ -561,189 +561,201 @@ msgid ""
"option.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1283 src/microhttpd/daemon.c:4799
+#: src/microhttpd/daemon.c:1283 src/microhttpd/daemon.c:4932
#, c-format
msgid ""
"%s() called with fd_setsize (%u) less than fixed FD_SETSIZE value (%d) used "
"on the platform.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1532 src/microhttpd/daemon.c:9293
+#: src/microhttpd/daemon.c:1547 src/microhttpd/daemon.c:9426
msgid ""
"Initiated daemon shutdown while \"upgraded\" connection was not closed.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1547
+#: src/microhttpd/daemon.c:1562
#, c-format
msgid ""
"Failed to forward to application %<PRIu64> bytes of data received from "
"remote side: application closed data forwarding.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1695
+#: src/microhttpd/daemon.c:1710
#, c-format
msgid ""
"Failed to forward to remote client %<PRIu64> bytes of data received from "
"application: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:1761
+#: src/microhttpd/daemon.c:1776
#, c-format
msgid ""
"Failed to forward to application %<PRIu64> bytes of data received from "
"remote side: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:1815
+#: src/microhttpd/daemon.c:1830
#, c-format
msgid ""
"Failed to forward to remote client %<PRIu64> bytes of data received from "
"application: daemon shut down.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1887
+#: src/microhttpd/daemon.c:1902
msgid "Error preparing select.\n"
msgstr ""
-#: src/microhttpd/daemon.c:1922 src/microhttpd/daemon.c:2123
-#: src/microhttpd/daemon.c:2262
+#: src/microhttpd/daemon.c:1937 src/microhttpd/daemon.c:2195
+#: src/microhttpd/daemon.c:2334
#, c-format
msgid "Error during select (%d): `%s'\n"
msgstr ""
-#: src/microhttpd/daemon.c:1973 src/microhttpd/daemon.c:2144
-#: src/microhttpd/daemon.c:2347
+#: src/microhttpd/daemon.c:1988 src/microhttpd/daemon.c:2216
+#: src/microhttpd/daemon.c:2419
#, c-format
msgid "Error during poll: `%s'\n"
msgstr ""
-#: src/microhttpd/daemon.c:2107 src/microhttpd/daemon.c:2244
+#: src/microhttpd/daemon.c:2179 src/microhttpd/daemon.c:2316
msgid "Failed to add FD to fd_set.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2399
+#: src/microhttpd/daemon.c:2471
msgid "Processing thread terminating. Closing connection.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2428
+#: src/microhttpd/daemon.c:2500
msgid ""
"Failed to signal thread termination via inter-thread communication channel.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2521
+#: src/microhttpd/daemon.c:2593
msgid "Internal server error. This should be impossible.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2531 src/microhttpd/daemon.c:2582
+#: src/microhttpd/daemon.c:2603 src/microhttpd/daemon.c:2654
msgid "PSK not supported by this server.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2545
+#: src/microhttpd/daemon.c:2617
msgid "PSK authentication failed: PSK too short.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2554
+#: src/microhttpd/daemon.c:2626
msgid "PSK authentication failed: PSK too long.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2566
+#: src/microhttpd/daemon.c:2638
msgid "PSK authentication failed: gnutls_malloc failed to allocate memory.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2630
+#: src/microhttpd/daemon.c:2702
#, c-format
msgid "Accepted connection on socket %d.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2642 src/microhttpd/daemon.c:2983
+#: src/microhttpd/daemon.c:2714 src/microhttpd/daemon.c:3080
msgid "Server reached connection limit. Closing inbound connection.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2661
+#: src/microhttpd/daemon.c:2733
msgid "Connection rejected by application. Closing connection.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2679 src/microhttpd/daemon.c:2708
-#: src/microhttpd/daemon.c:2966 src/microhttpd/daemon.c:5116
-#: src/microhttpd/daemon.c:6703
+#: src/microhttpd/daemon.c:2751 src/microhttpd/daemon.c:2780
+#: src/microhttpd/daemon.c:3063 src/microhttpd/daemon.c:5249
+#: src/microhttpd/daemon.c:6836
#, c-format
msgid "Error allocating memory: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:2786
+#: src/microhttpd/daemon.c:2819
+#, c-format
+msgid ""
+"Failed to create inter-thread communication channel for the connection: %s\n"
+msgstr ""
+
+#: src/microhttpd/daemon.c:2881
msgid "Failed to initialise TLS session.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2810
+#: src/microhttpd/daemon.c:2905
msgid "Failed to set ALPN protocols.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2840
+#: src/microhttpd/daemon.c:2935
#, c-format
msgid "Failed to setup TLS credentials: unknown credential type %d.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2852
+#: src/microhttpd/daemon.c:2947
msgid "Unknown credential type.\n"
msgstr ""
-#: src/microhttpd/daemon.c:2880
+#: src/microhttpd/daemon.c:2975
msgid "TLS connection on non-TLS daemon.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3027 src/microhttpd/daemon.c:8901
+#: src/microhttpd/daemon.c:3124 src/microhttpd/daemon.c:9034
msgid ""
"Failed to create a new thread because it would have exceeded the system "
"limit on the number of threads or no system resources available.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3033
+#: src/microhttpd/daemon.c:3130
#, c-format
msgid "Failed to create a thread: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:3186
+#: src/microhttpd/daemon.c:3283
#, c-format
msgid ""
"New connection socket descriptor (%d) is not less than FD_SETSIZE (%d).\n"
msgstr ""
-#: src/microhttpd/daemon.c:3203
+#: src/microhttpd/daemon.c:3300
msgid "Epoll mode supports only non-blocking sockets\n"
msgstr ""
-#: src/microhttpd/daemon.c:3240
+#: src/microhttpd/daemon.c:3337
msgid ""
"Failed to signal new connection via inter-thread communication channel.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3285
+#: src/microhttpd/daemon.c:3382
msgid "Failed to start serving new connection.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3413
+#: src/microhttpd/daemon.c:3510
msgid "Cannot suspend connections without enabling MHD_ALLOW_SUSPEND_RESUME!\n"
msgstr ""
-#: src/microhttpd/daemon.c:3420
+#: src/microhttpd/daemon.c:3517
msgid "Error: connection scheduled for \"upgrade\" cannot be suspended.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3453
+#: src/microhttpd/daemon.c:3551
msgid "Cannot resume connections without enabling MHD_ALLOW_SUSPEND_RESUME!\n"
msgstr ""
-#: src/microhttpd/daemon.c:3468 src/microhttpd/daemon.c:3504
+#: src/microhttpd/daemon.c:3579
+msgid ""
+"Failed to signal resume via the connection's inter-thread communication "
+"channel.\n"
+msgstr ""
+
+#: src/microhttpd/daemon.c:3589 src/microhttpd/daemon.c:3625
msgid "Failed to signal resume via inter-thread communication channel.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3645
+#: src/microhttpd/daemon.c:3776
msgid ""
"Failed to signal resume of connection via inter-thread communication "
"channel.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3701
+#: src/microhttpd/daemon.c:3832
msgid ""
"MHD_add_connection() has been called for daemon started without MHD_USE_ITC "
"flag.\n"
@@ -751,128 +763,128 @@ msgid ""
"already added sockets.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3715 src/microhttpd/daemon.c:3741
+#: src/microhttpd/daemon.c:3846 src/microhttpd/daemon.c:3872
msgid "MHD_add_connection() has been called with incorrect 'addrlen' value.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3726 src/microhttpd/daemon.c:3752
+#: src/microhttpd/daemon.c:3857 src/microhttpd/daemon.c:3883
msgid ""
"MHD_add_connection() has been called with non-zero value of 'sa_len' member "
"of 'struct sockaddr' which does not match 'sa_family'.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3772
+#: src/microhttpd/daemon.c:3903
#, c-format
msgid "Failed to set nonblocking mode on new client socket: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:3792
+#: src/microhttpd/daemon.c:3923
#, c-format
msgid "Failed to suppress SIGPIPE on new client socket: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:3816
+#: src/microhttpd/daemon.c:3947
msgid "Failed to set noninheritable mode on new client socket.\n"
msgstr ""
-#: src/microhttpd/daemon.c:3978
+#: src/microhttpd/daemon.c:4109
#, c-format
msgid "Error accepting connection: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:3991
+#: src/microhttpd/daemon.c:4122
msgid ""
"Hit process or system resource limit at FIRST connection. This is really bad "
"as there is no sane way to proceed. Will try busy waiting for system "
"resources to become magically available.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4008
+#: src/microhttpd/daemon.c:4139
#, c-format
msgid ""
"Hit process or system resource limit at %u connections, temporarily "
"suspending accept(). Consider setting a lower MHD_OPTION_CONNECTION_LIMIT.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4024
+#: src/microhttpd/daemon.c:4155
msgid ""
"Accepted socket has zero-length address. Processing the new socket as a "
"socket with unknown type.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4037
+#: src/microhttpd/daemon.c:4168
msgid ""
"Accepted socket address is larger than expected by system headers. "
"Processing the new socket as a socket with unknown type.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4049
+#: src/microhttpd/daemon.c:4180
#, c-format
msgid "Failed to set nonblocking mode on incoming connection socket: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:4063
+#: src/microhttpd/daemon.c:4194
msgid "Failed to set noninheritable mode on incoming connection socket.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4075
+#: src/microhttpd/daemon.c:4206
#, c-format
msgid "Failed to suppress SIGPIPE on incoming connection socket: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:4097
+#: src/microhttpd/daemon.c:4228
#, c-format
msgid "Accepted connection on socket %d\n"
msgstr ""
-#: src/microhttpd/daemon.c:4143 src/microhttpd/daemon.c:9335
-#: src/microhttpd/daemon.c:9367 src/microhttpd/daemon.c:9400
-#: src/microhttpd/daemon.c:9514
+#: src/microhttpd/daemon.c:4274 src/microhttpd/daemon.c:9468
+#: src/microhttpd/daemon.c:9500 src/microhttpd/daemon.c:9533
+#: src/microhttpd/daemon.c:9647
msgid "Failed to join a thread.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4323
+#: src/microhttpd/daemon.c:4456
msgid "Illegal call to MHD_get_timeout.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4761
+#: src/microhttpd/daemon.c:4894
msgid ""
"MHD_run_from_select() called with except_fd_set set to NULL. Such behavior "
"is deprecated.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4931
+#: src/microhttpd/daemon.c:5064
msgid "Could not obtain daemon fdsets.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4950
+#: src/microhttpd/daemon.c:5083
msgid "Could not add control inter-thread communication channel FD to fdset.\n"
msgstr ""
-#: src/microhttpd/daemon.c:4976
+#: src/microhttpd/daemon.c:5109
msgid "Could not add listen socket to fdset.\n"
msgstr ""
-#: src/microhttpd/daemon.c:5044
+#: src/microhttpd/daemon.c:5177
#, c-format
msgid "select failed: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:5193 src/microhttpd/daemon.c:5350
+#: src/microhttpd/daemon.c:5326 src/microhttpd/daemon.c:5483
#, c-format
msgid "poll failed: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:5492 src/microhttpd/daemon.c:5742
+#: src/microhttpd/daemon.c:5625 src/microhttpd/daemon.c:5875
#, c-format
msgid "Call to epoll_wait failed: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:5703 src/microhttpd/daemon.c:6306
+#: src/microhttpd/daemon.c:5836 src/microhttpd/daemon.c:6439
msgid "Failed to remove listen FD from epoll set.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6025
+#: src/microhttpd/daemon.c:6158
#, c-format
msgid ""
"MHD_run()/MHD_run_wait() called for daemon started with "
@@ -882,456 +894,456 @@ msgid ""
"MHD_OPTION_APP_FD_SETSIZE option.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6126
+#: src/microhttpd/daemon.c:6259
#, c-format
msgid "Failed to block SIGPIPE on daemon thread: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:6189
+#: src/microhttpd/daemon.c:6322
msgid "The URL encoding is broken.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6278
+#: src/microhttpd/daemon.c:6411
msgid "Using MHD_quiesce_daemon in this mode requires MHD_USE_ITC.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6314
+#: src/microhttpd/daemon.c:6447
msgid "Failed to signal quiesce via inter-thread communication channel.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6344
+#: src/microhttpd/daemon.c:6477
msgid "failed to signal quiesce via inter-thread communication channel.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6508
+#: src/microhttpd/daemon.c:6641
msgid ""
"GnuTLS priorities have been initialised with @LIBMICROHTTPD application-"
"specific system-wide configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6514
+#: src/microhttpd/daemon.c:6647
msgid ""
"GnuTLS priorities have been initialised with @SYSTEM system-wide "
"configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6520
+#: src/microhttpd/daemon.c:6653
msgid ""
"GnuTLS priorities have been initialised with GnuTLS default configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6526
+#: src/microhttpd/daemon.c:6659
msgid "GnuTLS priorities have been initialised with NORMAL configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6539
+#: src/microhttpd/daemon.c:6672
#, c-format
msgid "Failed to set GnuTLS priorities. Last error: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:6617
+#: src/microhttpd/daemon.c:6750
msgid ""
"GnuTLS priorities have been initialised with priorities specified by "
"application appended to @LIBMICROHTTPD application-specific system-wide "
"configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6624
+#: src/microhttpd/daemon.c:6757
msgid ""
"GnuTLS priorities have been initialised with priorities specified by "
"application appended to @SYSTEM system-wide configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6631
+#: src/microhttpd/daemon.c:6764
msgid ""
"GnuTLS priorities have been initialised with priorities specified by "
"application appended to GnuTLS default configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6638
+#: src/microhttpd/daemon.c:6771
msgid ""
"GnuTLS priorities have been initialised with priorities specified by "
"application appended to NORMAL configuration.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6652
+#: src/microhttpd/daemon.c:6785
#, c-format
msgid ""
"Failed to set GnuTLS priorities. Last error: %s. The problematic part starts "
"at: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:6768
+#: src/microhttpd/daemon.c:6901
msgid ""
"Warning: specified MHD_OPTION_CONNECTION_MEMORY_LIMIT value is too small and "
"rounded up to 64.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6794
+#: src/microhttpd/daemon.c:6927
msgid ""
"Warning: specified MHD_OPTION_CONNECTION_MEMORY_INCREMENT value is too large "
"and rounded down to 1/4 of MHD_OPTION_CONNECTION_MEMORY_LIMIT.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6880
+#: src/microhttpd/daemon.c:7013
msgid ""
"Warning: value \"1\", specified as the thread pool size, is ignored. Thread "
"pool is not used.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6894
+#: src/microhttpd/daemon.c:7027
#, c-format
msgid "Specified thread pool size (%u) too big.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6906
+#: src/microhttpd/daemon.c:7039
msgid ""
"MHD_OPTION_THREAD_POOL_SIZE option is specified but "
"MHD_USE_INTERNAL_POLLING_THREAD flag is not specified.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6915
+#: src/microhttpd/daemon.c:7048
msgid ""
"Both MHD_OPTION_THREAD_POOL_SIZE option and MHD_USE_THREAD_PER_CONNECTION "
"flag are specified.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6932 src/microhttpd/daemon.c:6945
-#: src/microhttpd/daemon.c:6958 src/microhttpd/daemon.c:6971
-#: src/microhttpd/daemon.c:7023 src/microhttpd/daemon.c:7069
-#: src/microhttpd/daemon.c:7090 src/microhttpd/daemon.c:7112
-#: src/microhttpd/daemon.c:7448
+#: src/microhttpd/daemon.c:7065 src/microhttpd/daemon.c:7078
+#: src/microhttpd/daemon.c:7091 src/microhttpd/daemon.c:7104
+#: src/microhttpd/daemon.c:7156 src/microhttpd/daemon.c:7202
+#: src/microhttpd/daemon.c:7223 src/microhttpd/daemon.c:7245
+#: src/microhttpd/daemon.c:7581
#, c-format
msgid "MHD HTTPS option %d passed to MHD but MHD_USE_TLS not set.\n"
msgstr ""
-#: src/microhttpd/daemon.c:6992
+#: src/microhttpd/daemon.c:7125
msgid "Error initializing DH parameters.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7002
+#: src/microhttpd/daemon.c:7135
msgid "Diffie-Hellman parameters string too long.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7013
+#: src/microhttpd/daemon.c:7146
msgid "Bad Diffie-Hellman parameters format.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7048
+#: src/microhttpd/daemon.c:7181
#, c-format
msgid ""
"Setting priorities to '%s' failed: %s The problematic part starts at: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:7078
+#: src/microhttpd/daemon.c:7211
msgid ""
"MHD_OPTION_HTTPS_CERT_CALLBACK requires building MHD with GnuTLS >= 3.0.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7100
+#: src/microhttpd/daemon.c:7233
msgid ""
"MHD_OPTION_HTTPS_CERT_CALLBACK2 requires building MHD with GnuTLS >= 3.6.3.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7171
+#: src/microhttpd/daemon.c:7304
msgid "Digest Auth is disabled for this build of GNU libmicrohttpd.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7189
+#: src/microhttpd/daemon.c:7322
msgid ""
"MHD_OPTION_EXTERNAL_LOGGER is not the first option specified for the daemon. "
"Some messages may be printed by the standard MHD logger.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7214
+#: src/microhttpd/daemon.c:7347
msgid "TCP fastopen is not supported on this platform.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7238
+#: src/microhttpd/daemon.c:7371
msgid ""
"Flag MHD_USE_PEDANTIC_CHECKS is ignored because another behaviour is "
"specified by MHD_OPTION_STRICT_CLIENT.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7251
+#: src/microhttpd/daemon.c:7384
msgid ""
"Flag MHD_USE_PEDANTIC_CHECKS is ignored because another behaviour is "
"specified by MHD_OPTION_CLIENT_DISCIPLINE_LVL.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7422
+#: src/microhttpd/daemon.c:7555
#, c-format
msgid "MHD HTTPS option %d passed to MHD compiled without GNUtls >= 3.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7472
+#: src/microhttpd/daemon.c:7605
#, c-format
msgid "MHD HTTPS option %d passed to MHD compiled without HTTPS support.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7482
+#: src/microhttpd/daemon.c:7615
#, c-format
msgid "Invalid option %d! (Did you terminate the list with MHD_OPTION_END?).\n"
msgstr ""
-#: src/microhttpd/daemon.c:7512
+#: src/microhttpd/daemon.c:7645
#, c-format
msgid "Call to epoll_create1 failed: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:7522
+#: src/microhttpd/daemon.c:7655
msgid "Failed to set noninheritable mode on epoll FD.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7564
+#: src/microhttpd/daemon.c:7697
msgid "The epoll FD is too large to be used with fd_set.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7646
+#: src/microhttpd/daemon.c:7779
#, c-format
msgid "MHD_OPTION_APP_FD_SETSIZE value (%d) is not positive.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7655
+#: src/microhttpd/daemon.c:7788
msgid ""
"MHD_OPTION_APP_FD_SETSIZE is ignored for daemon started with "
"MHD_USE_INTERNAL_POLLING_THREAD.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7664
+#: src/microhttpd/daemon.c:7797
msgid ""
"MHD_OPTION_APP_FD_SETSIZE is ignored for daemon started with MHD_USE_POLL.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7676
+#: src/microhttpd/daemon.c:7809
#, c-format
msgid ""
"MHD_OPTION_APP_FD_SETSIZE value (%d) does not match the platform FD_SETSIZE "
"value (%d) and this platform does not support overriding of FD_SETSIZE.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7701
+#: src/microhttpd/daemon.c:7834
msgid "The value provided for MHD_OPTION_LISTEN_SOCKET is invalid.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7711
+#: src/microhttpd/daemon.c:7844
msgid ""
"MHD_OPTION_LISTEN_SOCKET specified for daemon with MHD_USE_NO_LISTEN_SOCKET "
"flag set.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7741
+#: src/microhttpd/daemon.c:7874
msgid ""
"MHD_OPTION_LISTEN_SOCKET cannot be used together with "
"MHD_OPTION_SOCK_ADDR_LEN or MHD_OPTION_SOCK_ADDR.\n"
msgstr ""
-#: src/microhttpd/daemon.c:7750
+#: src/microhttpd/daemon.c:7883
msgid ""
"MHD_OPTION_SOCK_ADDR_LEN or MHD_OPTION_SOCK_ADDR specified for daemon with "
"MHD_USE_NO_LISTEN_SOCKET flag set.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8032
+#: src/microhttpd/daemon.c:8165
msgid "Failed to initialise GnuTLS priorities.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8045
+#: src/microhttpd/daemon.c:8178
msgid ""
"Warning: MHD_USE_THREAD_PER_CONNECTION must be used only with "
"MHD_USE_INTERNAL_POLLING_THREAD. Flag MHD_USE_INTERNAL_POLLING_THREAD was "
"added. Consider setting MHD_USE_INTERNAL_POLLING_THREAD explicitly.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8061
+#: src/microhttpd/daemon.c:8194
msgid "Using debug build of libmicrohttpd.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8075
+#: src/microhttpd/daemon.c:8208
#, c-format
msgid "Failed to create inter-thread communication channel: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8090
+#: src/microhttpd/daemon.c:8223
msgid ""
"file descriptor for inter-thread communication channel exceeds maximum "
"value.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8129
+#: src/microhttpd/daemon.c:8262
msgid "Specified value for NC_SIZE too large.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8145
+#: src/microhttpd/daemon.c:8278
#, c-format
msgid "Failed to allocate memory for nonce-nc map: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8163
+#: src/microhttpd/daemon.c:8296
msgid "MHD failed to initialize nonce-nc mutex.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8184
+#: src/microhttpd/daemon.c:8317
msgid "MHD thread polling only works with MHD_USE_INTERNAL_POLLING_THREAD.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8214
+#: src/microhttpd/daemon.c:8347
msgid ""
"MHD_USE_IPv6 is enabled, but 'struct sockaddr *' specified for "
"MHD_OPTION_SOCK_ADDR_LEN or MHD_OPTION_SOCK_ADDR is not IPv6 address.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8233 src/microhttpd/daemon.c:8278
+#: src/microhttpd/daemon.c:8366 src/microhttpd/daemon.c:8411
msgid "The size specified for MHD_OPTION_SOCK_ADDR_LEN option is wrong.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8245 src/microhttpd/daemon.c:8290
+#: src/microhttpd/daemon.c:8378 src/microhttpd/daemon.c:8423
msgid ""
"The value of 'struct sockaddr.sa_len' provided via MHD_OPTION_SOCK_ADDR_LEN "
"option is not zero and does not match 'sa_family' value of the same "
"structure.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8328
+#: src/microhttpd/daemon.c:8461
msgid ""
"The 'sa_family' of the 'struct sockaddr' provided via MHD_OPTION_SOCK_ADDR "
"option is not supported.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8405
+#: src/microhttpd/daemon.c:8538
#, c-format
msgid "Failed to create socket for listening: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8416 src/microhttpd/daemon.c:8609
+#: src/microhttpd/daemon.c:8549 src/microhttpd/daemon.c:8742
#, c-format
msgid ""
"Listen socket descriptor (%d) is not less than daemon FD_SETSIZE value "
"(%d).\n"
msgstr ""
-#: src/microhttpd/daemon.c:8439 src/microhttpd/daemon.c:8458
-#: src/microhttpd/daemon.c:8481 src/microhttpd/daemon.c:8519
-#: src/microhttpd/daemon.c:8552 src/microhttpd/daemon.c:8584
+#: src/microhttpd/daemon.c:8572 src/microhttpd/daemon.c:8591
+#: src/microhttpd/daemon.c:8614 src/microhttpd/daemon.c:8652
+#: src/microhttpd/daemon.c:8685 src/microhttpd/daemon.c:8717
#, c-format
msgid "setsockopt failed: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8491
+#: src/microhttpd/daemon.c:8624
msgid "Cannot allow listening address reuse: SO_REUSEPORT not defined.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8527
+#: src/microhttpd/daemon.c:8660
msgid ""
"Cannot disallow listening address reuse: SO_EXCLUSIVEADDRUSE not defined.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8565
+#: src/microhttpd/daemon.c:8698
#, c-format
msgid "Failed to bind to port %u: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8595
+#: src/microhttpd/daemon.c:8728
#, c-format
msgid "Failed to listen for connections: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8696
+#: src/microhttpd/daemon.c:8829
#, c-format
msgid "Failed to get listen port number: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8706
+#: src/microhttpd/daemon.c:8839
msgid ""
"Failed to get listen port number (`struct sockaddr_storage` too small!?).\n"
msgstr ""
-#: src/microhttpd/daemon.c:8753
+#: src/microhttpd/daemon.c:8886
msgid "Listen socket has unknown address family!\n"
msgstr ""
-#: src/microhttpd/daemon.c:8770
+#: src/microhttpd/daemon.c:8903
#, c-format
msgid "Failed to set nonblocking mode on listening socket: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8806
+#: src/microhttpd/daemon.c:8939
msgid ""
"Combining MHD_USE_THREAD_PER_CONNECTION and MHD_USE_EPOLL is not supported.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8821
+#: src/microhttpd/daemon.c:8954
msgid "MHD failed to initialize IP connection limit mutex.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8834
+#: src/microhttpd/daemon.c:8967
msgid "Failed to initialize TLS support.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8864 src/microhttpd/daemon.c:8953
-#: src/microhttpd/daemon.c:9087
+#: src/microhttpd/daemon.c:8997 src/microhttpd/daemon.c:9086
+#: src/microhttpd/daemon.c:9220
msgid "Failed to initialise internal lists mutex.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8873 src/microhttpd/daemon.c:8883
-#: src/microhttpd/daemon.c:8961 src/microhttpd/daemon.c:8970
-#: src/microhttpd/daemon.c:9096 src/microhttpd/daemon.c:9106
+#: src/microhttpd/daemon.c:9006 src/microhttpd/daemon.c:9016
+#: src/microhttpd/daemon.c:9094 src/microhttpd/daemon.c:9103
+#: src/microhttpd/daemon.c:9229 src/microhttpd/daemon.c:9239
msgid "Failed to initialise mutex.\n"
msgstr ""
-#: src/microhttpd/daemon.c:8907
+#: src/microhttpd/daemon.c:9040
#, c-format
msgid "Failed to create listen thread: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8983
+#: src/microhttpd/daemon.c:9116
#, c-format
msgid "Failed to create worker inter-thread communication channel: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:8997
+#: src/microhttpd/daemon.c:9130
msgid ""
"File descriptor for worker inter-thread communication channel exceeds "
"maximum value.\n"
msgstr ""
-#: src/microhttpd/daemon.c:9060
+#: src/microhttpd/daemon.c:9193
msgid ""
"Failed to create a new pool thread because it would have exceeded the system "
"limit on the number of threads or no system resources available.\n"
msgstr ""
-#: src/microhttpd/daemon.c:9066
+#: src/microhttpd/daemon.c:9199
#, c-format
msgid "Failed to create pool thread: %s\n"
msgstr ""
-#: src/microhttpd/daemon.c:9279 src/microhttpd/daemon.c:9312
+#: src/microhttpd/daemon.c:9412 src/microhttpd/daemon.c:9445
msgid "MHD_stop_daemon() called while we have suspended connections.\n"
msgstr ""
-#: src/microhttpd/daemon.c:9351 src/microhttpd/daemon.c:9457
-#: src/microhttpd/daemon.c:9495
+#: src/microhttpd/daemon.c:9484 src/microhttpd/daemon.c:9590
+#: src/microhttpd/daemon.c:9628
msgid "Failed to signal shutdown via inter-thread communication channel.\n"
msgstr ""
-#: src/microhttpd/daemon.c:9425
+#: src/microhttpd/daemon.c:9558
msgid "MHD_stop_daemon() was called twice."
msgstr ""
-#: src/microhttpd/daemon.c:10015
+#: src/microhttpd/daemon.c:10148
msgid "Failed to initialize winsock.\n"
msgstr ""
-#: src/microhttpd/daemon.c:10017
+#: src/microhttpd/daemon.c:10150
msgid "Winsock version 2.2 is not available.\n"
msgstr ""
-#: src/microhttpd/daemon.c:10026 src/microhttpd/daemon.c:10030
+#: src/microhttpd/daemon.c:10159 src/microhttpd/daemon.c:10163
msgid "Failed to initialise multithreading in libgcrypt.\n"
msgstr ""
-#: src/microhttpd/daemon.c:10036
+#: src/microhttpd/daemon.c:10169
msgid "libgcrypt is too old. MHD was compiled for libgcrypt 1.6.0 or newer.\n"
msgstr ""
diff --git a/src/examples/json_echo.c b/src/examples/json_echo.c
@@ -33,13 +33,13 @@
* Bad request page.
*/
#define BAD_REQUEST_ERROR \
- "<html><head><title>Illegal request</title></head><body>Go away.</body></html>"
+ "<html><head><title>Illegal request</title></head><body>Go away.</body></html>"
/**
* Invalid JSON page.
*/
#define NOT_FOUND_ERROR \
- "<html><head><title>Not found</title></head><body>Go away.</body></html>"
+ "<html><head><title>Not found</title></head><body>Go away.</body></html>"
/**
@@ -177,7 +177,6 @@ create_response (void *cls,
struct Request *request = *req_cls;
struct MHD_Response *response;
enum MHD_Result ret;
- unsigned int i;
(void) cls; /* Unused. Silence compiler warning. */
(void) version; /* Unused. Silence compiler warning. */
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h
@@ -101,7 +101,7 @@ MHD_C_DECLRATIONS_START_HERE_
* they are parsed as decimal numbers.
* Example: 0x01093001 = 1.9.30-1.
*/
-#define MHD_VERSION 0x01000900
+#define MHD_VERSION 0x01001000
/* If generic headers don't work on your platform, include headers
which define 'va_list', 'size_t', 'ssize_t', 'intptr_t', 'off_t',