libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 5f207ceedeb07b2d5a0a937ede0da92a52f7e804
parent 1e43edd529d3d7be89b4fedb7735a41e4e5ea725
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu,  2 Apr 2026 00:13:41 +0200

fix bug in list traversal that could cause ready connections to be skipped if other connections were suspended

Diffstat:
MChangeLog | 6++++++
MNEWS | 10++++++++++
Mconfigure.ac | 6+++---
Mpo/libmicrohttpd.pot | 478++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/include/microhttpd.h | 2+-
Msrc/microhttpd/daemon.c | 9++++++---
6 files changed, 265 insertions(+), 246 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,9 @@ +Thu Apr 2 12:13:57 AM CEST 2026 + Fixed bug in connection list traversal logic that could + cause ready connections to be skipped (possibly indefinitely) + if another connection was being suspended. + Releasing GNU libmicrohttpd 1.0.3. -CG + Sat Feb 28 23:38:39 CET 2026 Added MHD_OPTION_ALLOW_BIN_ZERO_IN_URI_PATH daemon option. Added new function MHD_get_connection_URI_path_n(). -EG diff --git a/NEWS b/NEWS @@ -1,3 +1,13 @@ +Thu Apr 2 12:16:28 AM CEST 2026 +Released GNU libmicrohttpd 1.0.3. + + This is a bugfix release. + It primarily fixes a list traversal issue that could + cause connection handling issues when other connections + were suspended. + + -- Christian Grothoff + Mon Jul 14 2025 05:03:07 PM CEST Released GNU libmicrohttpd 1.0.2. diff --git a/configure.ac b/configure.ac @@ -1,5 +1,5 @@ # This file is part of libmicrohttpd. -# (C) 2006-2021 Christian Grothoff (and other contributing authors) +# (C) 2006-2026 Christian Grothoff (and other contributing authors) # (C) 2014-2024 Evgeny Grin (Karlson2k) # # libmicrohttpd is free software; you can redistribute it and/or modify @@ -23,7 +23,7 @@ # AC_PREREQ([2.64]) LT_PREREQ([2.4.0]) -AC_INIT([GNU libmicrohttpd],[1.0.2],[libmicrohttpd@gnu.org]) +AC_INIT([GNU libmicrohttpd],[1.0.3],[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=2 +LIB_VERSION_REVISION=3 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.2\n" +"Project-Id-Version: GNU libmicrohttpd 1.0.3\n" "Report-Msgid-Bugs-To: libmicrohttpd@gnu.org\n" -"POT-Creation-Date: 2025-07-14 17:05+0200\n" +"POT-Creation-Date: 2026-04-02 00:17+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" @@ -17,467 +17,467 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/microhttpd/connection.c:611 +#: src/microhttpd/connection.c:633 msgid "The operation would block, retry later" msgstr "" -#: src/microhttpd/connection.c:613 +#: src/microhttpd/connection.c:635 msgid "The connection was forcibly closed by remote peer" msgstr "" -#: src/microhttpd/connection.c:615 +#: src/microhttpd/connection.c:637 msgid "The socket is not connected" msgstr "" -#: src/microhttpd/connection.c:617 +#: src/microhttpd/connection.c:639 msgid "Not enough system resources to serve the request" msgstr "" -#: src/microhttpd/connection.c:619 +#: src/microhttpd/connection.c:641 msgid "Bad FD value" msgstr "" -#: src/microhttpd/connection.c:621 +#: src/microhttpd/connection.c:643 msgid "Argument value is invalid" msgstr "" -#: src/microhttpd/connection.c:623 +#: src/microhttpd/connection.c:645 msgid "Argument value is not supported" msgstr "" -#: src/microhttpd/connection.c:625 +#: src/microhttpd/connection.c:647 msgid "The socket is no longer available for sending" msgstr "" -#: src/microhttpd/connection.c:627 +#: src/microhttpd/connection.c:649 msgid "TLS encryption or decryption error" msgstr "" -#: src/microhttpd/connection.c:632 +#: src/microhttpd/connection.c:654 msgid "Not an error code" msgstr "" -#: src/microhttpd/connection.c:635 +#: src/microhttpd/connection.c:657 msgid "Wrong error code value" msgstr "" -#: src/microhttpd/connection.c:1316 src/microhttpd/connection.c:1335 -#: src/microhttpd/daemon.c:3280 src/microhttpd/daemon.c:4108 -#: src/microhttpd/daemon.c:8982 +#: src/microhttpd/connection.c:1364 src/microhttpd/connection.c:1383 +#: src/microhttpd/daemon.c:3280 src/microhttpd/daemon.c:4107 +#: src/microhttpd/daemon.c:8992 msgid "Failed to remove FD from epoll set.\n" msgstr "" -#: src/microhttpd/connection.c:1429 src/microhttpd/connection.c:1538 +#: src/microhttpd/connection.c:1477 src/microhttpd/connection.c:1586 msgid "Closing connection (out of memory)." msgstr "" -#: src/microhttpd/connection.c:1474 +#: src/microhttpd/connection.c:1522 msgid "Closing connection (application reported error generating data)." msgstr "" -#: src/microhttpd/connection.c:1602 +#: src/microhttpd/connection.c:1650 msgid "No callback for the chunked data." msgstr "" -#: src/microhttpd/connection.c:1619 +#: src/microhttpd/connection.c:1667 msgid "Closing connection (application error generating response)." msgstr "" -#: src/microhttpd/connection.c:1644 +#: src/microhttpd/connection.c:1692 msgid "Closing connection (application returned more data than requested)." msgstr "" -#: src/microhttpd/connection.c:2274 +#: src/microhttpd/connection.c:2322 #, c-format msgid "" "This reply with response code %u cannot use reply body. Non-empty response " "body is ignored and not used.\n" msgstr "" -#: src/microhttpd/connection.c:2282 +#: src/microhttpd/connection.c:2330 #, c-format msgid "" "This reply with response code %u cannot use reply body. Application defined " "\"Content-Length\" header violatesHTTP specification.\n" msgstr "" -#: src/microhttpd/connection.c:2800 +#: src/microhttpd/connection.c:2848 #, c-format msgid "" "Error processing request (HTTP response code is %u ('%s')). Closing " "connection.\n" msgstr "" -#: src/microhttpd/connection.c:2809 +#: src/microhttpd/connection.c:2857 msgid "Too late to send an error response, response is being sent already.\n" msgstr "" -#: src/microhttpd/connection.c:2815 +#: src/microhttpd/connection.c:2863 msgid "Too late for error response." msgstr "" -#: src/microhttpd/connection.c:2844 +#: src/microhttpd/connection.c:2892 msgid "Failed to create error response.\n" msgstr "" -#: src/microhttpd/connection.c:2891 +#: src/microhttpd/connection.c:2939 msgid "Closing connection (failed to queue error response)." msgstr "" -#: src/microhttpd/connection.c:2922 +#: src/microhttpd/connection.c:2971 msgid "Closing connection (failed to create error response header)." msgstr "" -#: src/microhttpd/connection.c:3441 +#: src/microhttpd/connection.c:3505 msgid "" "No space left in the read buffer when receiving the initial part of the " "request line." msgstr "" -#: src/microhttpd/connection.c:3461 +#: src/microhttpd/connection.c:3525 msgid "" "No space left in the read buffer when receiving the URI in the request line. " "The request uses non-standard HTTP request method token." msgstr "" -#: src/microhttpd/connection.c:3738 +#: src/microhttpd/connection.c:3802 msgid "Invalid TLS state value.\n" msgstr "" -#: src/microhttpd/connection.c:3746 src/microhttpd/connection.c:6507 -#: src/microhttpd/connection.c:6605 src/microhttpd/connection.c:7204 +#: src/microhttpd/connection.c:3810 src/microhttpd/connection.c:6708 +#: src/microhttpd/connection.c:6806 src/microhttpd/connection.c:7405 #, c-format msgid "In function %s handling connection at state: %s\n" msgstr "" -#: src/microhttpd/connection.c:3896 +#: src/microhttpd/connection.c:3960 msgid "Not enough memory in pool to allocate header record!\n" msgstr "" -#: src/microhttpd/connection.c:4187 +#: src/microhttpd/connection.c:4251 msgid "" "The Cookie header has been parsed, but it is not fully compliant with the " "standard.\n" msgstr "" -#: src/microhttpd/connection.c:4202 +#: src/microhttpd/connection.c:4266 msgid "The Cookie header has been ignored as it contains malformed data.\n" msgstr "" -#: src/microhttpd/connection.c:4209 +#: src/microhttpd/connection.c:4273 msgid "" "The Cookie header has been only partially parsed as it contains malformed " "data.\n" msgstr "" -#: src/microhttpd/connection.c:4216 +#: src/microhttpd/connection.c:4280 msgid "The Cookie header has malformed data.\n" msgstr "" -#: src/microhttpd/connection.c:4222 +#: src/microhttpd/connection.c:4286 msgid "Not enough memory in the connection pool to parse client cookies!\n" msgstr "" -#: src/microhttpd/connection.c:4385 src/microhttpd/connection.c:4629 +#: src/microhttpd/connection.c:4449 src/microhttpd/connection.c:4706 msgid "Application reported internal error, closing connection." msgstr "" -#: src/microhttpd/connection.c:4636 src/microhttpd/postprocessor.c:56 +#: src/microhttpd/connection.c:4713 src/microhttpd/postprocessor.c:56 msgid "libmicrohttpd API violation.\n" msgstr "" -#: src/microhttpd/connection.c:4653 +#: src/microhttpd/connection.c:4730 msgid "" "WARNING: Access Handler Callback has not processed any upload data and " "connection is not suspended. This may result in hung connection.\n" msgstr "" -#: src/microhttpd/connection.c:4745 +#: src/microhttpd/connection.c:4822 msgid "Received HTTP/1.1 request without `Host' header.\n" msgstr "" -#: src/microhttpd/connection.c:4798 +#: src/microhttpd/connection.c:4875 msgid "" "The 'Content-Length' request header is ignored as chunked Transfer-Encoding " "is used for this request.\n" msgstr "" -#: src/microhttpd/connection.c:4830 +#: src/microhttpd/connection.c:4907 msgid "Too large value of 'Content-Length' header. Closing connection.\n" msgstr "" -#: src/microhttpd/connection.c:4843 +#: src/microhttpd/connection.c:4920 msgid "Failed to parse 'Content-Length' header. Closing connection.\n" msgstr "" -#: src/microhttpd/connection.c:5002 +#: src/microhttpd/connection.c:5079 msgid "Too many meaningless extra empty lines received before the request" msgstr "" -#: src/microhttpd/connection.c:5077 +#: src/microhttpd/connection.c:5154 msgid "Bare CR characters are not allowed in the request line.\n" msgstr "" -#: src/microhttpd/connection.c:5104 +#: src/microhttpd/connection.c:5181 msgid "Bare LF characters are not allowed in the request line.\n" msgstr "" -#: src/microhttpd/connection.c:5229 +#: src/microhttpd/connection.c:5306 msgid "The request line is malformed.\n" msgstr "" -#: src/microhttpd/connection.c:5292 +#: src/microhttpd/connection.c:5369 msgid "The request line starts with a whitespace.\n" msgstr "" -#: src/microhttpd/connection.c:5330 +#: src/microhttpd/connection.c:5407 msgid "The request line has more than two whitespaces.\n" msgstr "" -#: src/microhttpd/connection.c:5419 +#: src/microhttpd/connection.c:5496 msgid "Invalid character is in the request line.\n" msgstr "" -#: src/microhttpd/connection.c:5428 +#: src/microhttpd/connection.c:5505 msgid "The NUL character is in the request line.\n" msgstr "" -#: src/microhttpd/connection.c:5477 +#: src/microhttpd/connection.c:5554 msgid "" "The request has whitespace character is in the URI and the URI is too large " "to send automatic redirect to fixed URI.\n" msgstr "" -#: src/microhttpd/connection.c:5541 +#: src/microhttpd/connection.c:5618 msgid "The request has whitespace character is in the URI.\n" msgstr "" -#: src/microhttpd/connection.c:5935 +#: src/microhttpd/connection.c:6126 msgid "Whitespace-prefixed first header line has been skipped.\n" msgstr "" -#: src/microhttpd/connection.c:6237 +#: src/microhttpd/connection.c:6438 #, c-format msgid "Failed to allocate memory in the connection memory pool to store %s.\n" msgstr "" -#: src/microhttpd/connection.c:6239 src/microhttpd/connection.c:6303 -#: src/microhttpd/connection.c:6310 +#: src/microhttpd/connection.c:6440 src/microhttpd/connection.c:6504 +#: src/microhttpd/connection.c:6511 msgid "header" msgstr "" -#: src/microhttpd/connection.c:6239 src/microhttpd/connection.c:6303 -#: src/microhttpd/connection.c:6310 +#: src/microhttpd/connection.c:6440 src/microhttpd/connection.c:6504 +#: src/microhttpd/connection.c:6511 msgid "footer" msgstr "" -#: src/microhttpd/connection.c:6285 +#: src/microhttpd/connection.c:6486 #, c-format msgid "One bare CR character has been replaced with space in %s.\n" msgstr "" -#: src/microhttpd/connection.c:6288 +#: src/microhttpd/connection.c:6489 msgid "the request line or in the request headers" msgstr "" -#: src/microhttpd/connection.c:6289 +#: src/microhttpd/connection.c:6490 msgid "the request footers" msgstr "" -#: src/microhttpd/connection.c:6294 +#: src/microhttpd/connection.c:6495 #, c-format msgid "" "%<PRIu64> bare CR characters have been replaced with spaces in the request " "line and/or in the request %s.\n" msgstr "" -#: src/microhttpd/connection.c:6297 +#: src/microhttpd/connection.c:6498 msgid "headers" msgstr "" -#: src/microhttpd/connection.c:6297 +#: src/microhttpd/connection.c:6498 msgid "footers" msgstr "" -#: src/microhttpd/connection.c:6302 +#: src/microhttpd/connection.c:6503 #, c-format msgid "One %s line without colon has been skipped.\n" msgstr "" -#: src/microhttpd/connection.c:6308 +#: src/microhttpd/connection.c:6509 #, c-format msgid "%<PRIu64> %s lines without colons has been skipped.\n" msgstr "" -#: src/microhttpd/connection.c:6456 +#: src/microhttpd/connection.c:6657 msgid "Socket has been disconnected when reading request.\n" msgstr "" -#: src/microhttpd/connection.c:6468 +#: src/microhttpd/connection.c:6669 #, c-format msgid "Connection socket is closed when reading request due to the error: %s\n" msgstr "" -#: src/microhttpd/connection.c:6486 +#: src/microhttpd/connection.c:6687 msgid "Connection was closed by remote side with incomplete request.\n" msgstr "" -#: src/microhttpd/connection.c:6632 +#: src/microhttpd/connection.c:6833 #, c-format msgid "Failed to send data in request for %s.\n" msgstr "" -#: src/microhttpd/connection.c:6641 +#: src/microhttpd/connection.c:6842 #, c-format msgid "Sent 100 continue response: `%.*s'\n" msgstr "" -#: src/microhttpd/connection.c:6718 +#: src/microhttpd/connection.c:6919 #, c-format msgid "" "Failed to send the response headers for the request for `%s'. Error: %s\n" msgstr "" -#: src/microhttpd/connection.c:6784 +#: src/microhttpd/connection.c:6985 msgid "Data offset exceeds limit.\n" msgstr "" -#: src/microhttpd/connection.c:6794 +#: src/microhttpd/connection.c:6995 #, c-format msgid "Sent %d-byte DATA response: `%.*s'\n" msgstr "" -#: src/microhttpd/connection.c:6811 +#: src/microhttpd/connection.c:7012 #, c-format msgid "Failed to send the response body for the request for `%s'. Error: %s\n" msgstr "" -#: src/microhttpd/connection.c:6843 +#: src/microhttpd/connection.c:7044 #, c-format msgid "" "Failed to send the chunked response body for the request for `%s'. Error: " "%s\n" msgstr "" -#: src/microhttpd/connection.c:6879 +#: src/microhttpd/connection.c:7080 #, c-format msgid "Failed to send the footers for the request for `%s'. Error: %s\n" msgstr "" -#: src/microhttpd/connection.c:6908 +#: src/microhttpd/connection.c:7109 msgid "Internal error.\n" msgstr "" -#: src/microhttpd/connection.c:6947 +#: src/microhttpd/connection.c:7148 #, c-format msgid "Detected system clock %u milliseconds jump back.\n" msgstr "" -#: src/microhttpd/connection.c:6954 +#: src/microhttpd/connection.c:7155 #, c-format msgid "Detected too large system clock %<PRIu64> milliseconds jump back.\n" msgstr "" -#: src/microhttpd/connection.c:7036 +#: src/microhttpd/connection.c:7237 msgid "" "Failed to signal end of connection via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/connection.c:7350 +#: src/microhttpd/connection.c:7551 msgid "Closing connection (failed to create response header).\n" msgstr "" -#: src/microhttpd/connection.c:7484 +#: src/microhttpd/connection.c:7685 msgid "Closing connection (failed to create response footer)." msgstr "" -#: src/microhttpd/connection.c:7595 src/microhttpd/daemon.c:2985 -#: src/microhttpd/daemon.c:5541 src/microhttpd/daemon.c:5574 -#: src/microhttpd/daemon.c:7455 src/microhttpd/daemon.c:7474 +#: src/microhttpd/connection.c:7796 src/microhttpd/daemon.c:2985 +#: src/microhttpd/daemon.c:5543 src/microhttpd/daemon.c:5576 +#: src/microhttpd/daemon.c:7465 src/microhttpd/daemon.c:7484 #: src/microhttpd/response.c:2073 src/microhttpd/response.c:2099 #, c-format msgid "Call to epoll_ctl failed: %s\n" msgstr "" -#: src/microhttpd/connection.c:7759 src/microhttpd/daemon.c:6687 +#: src/microhttpd/connection.c:7960 src/microhttpd/daemon.c:6690 #, c-format msgid "" "The specified connection timeout (%u) is too large. Maximum allowed value " "(%<PRIu64>) will be used instead.\n" msgstr "" -#: src/microhttpd/connection.c:7875 +#: src/microhttpd/connection.c:8076 msgid "Attempted to queue response on wrong thread!\n" msgstr "" -#: src/microhttpd/connection.c:7899 +#: src/microhttpd/connection.c:8100 msgid "" "Attempted 'upgrade' connection on daemon without MHD_ALLOW_UPGRADE option!\n" msgstr "" -#: src/microhttpd/connection.c:7908 +#: src/microhttpd/connection.c:8109 msgid "Application used invalid status code for 'upgrade' response!\n" msgstr "" -#: src/microhttpd/connection.c:7917 +#: src/microhttpd/connection.c:8118 msgid "Application used invalid response without \"Connection\" header!\n" msgstr "" -#: src/microhttpd/connection.c:7931 +#: src/microhttpd/connection.c:8132 msgid "" "Application used invalid response without \"upgrade\" token in " "\"Connection\" header!\n" msgstr "" -#: src/microhttpd/connection.c:7941 +#: src/microhttpd/connection.c:8142 msgid "Connection \"Upgrade\" can be used only with HTTP/1.1 connections!\n" msgstr "" -#: src/microhttpd/connection.c:7955 +#: src/microhttpd/connection.c:8156 msgid "" "Application used status code 101 \"Switching Protocols\" with non-'upgrade' " "response!\n" msgstr "" -#: src/microhttpd/connection.c:7963 +#: src/microhttpd/connection.c:8164 msgid "" "Application used status code 101 \"Switching Protocols\", but this MHD was " "built without \"Upgrade\" support!\n" msgstr "" -#: src/microhttpd/connection.c:7974 +#: src/microhttpd/connection.c:8175 #, c-format msgid "" "Refused wrong status code (%u). HTTP requires three digits status code!\n" msgstr "" -#: src/microhttpd/connection.c:7986 +#: src/microhttpd/connection.c:8187 #, c-format msgid "" "Wrong status code (%u) refused. HTTP/1.0 clients do not support 1xx status " "codes!\n" msgstr "" -#: src/microhttpd/connection.c:7997 +#: src/microhttpd/connection.c:8198 #, c-format msgid "" "Wrong status code (%u) refused. HTTP/1.0 reply mode does not support 1xx " "status codes!\n" msgstr "" -#: src/microhttpd/connection.c:8009 +#: src/microhttpd/connection.c:8210 #, c-format msgid "" "Successful (%u) response code cannot be used to answer \"CONNECT\" request!\n" msgstr "" -#: src/microhttpd/connection.c:8021 +#: src/microhttpd/connection.c:8222 msgid "" "HEAD-only response cannot be used when the request requires reply body to be " "sent!\n" msgstr "" -#: src/microhttpd/connection.c:8032 +#: src/microhttpd/connection.c:8233 msgid "" "The response has application-defined \"Content-Length\" header. The reply to " "the request will be not HTTP-compliant and may result in hung connection or " @@ -539,7 +539,7 @@ msgid "" "unsupported.\n" msgstr "" -#: src/microhttpd/daemon.c:1222 src/microhttpd/daemon.c:4681 +#: src/microhttpd/daemon.c:1222 src/microhttpd/daemon.c:4683 #, c-format msgid "" "%s() called with fd_setsize (%u) less than value set by " @@ -547,7 +547,7 @@ msgid "" "MHD_OPTION_APP_FD_SETSIZE with the correct value.\n" msgstr "" -#: src/microhttpd/daemon.c:1231 src/microhttpd/daemon.c:4690 +#: src/microhttpd/daemon.c:1231 src/microhttpd/daemon.c:4692 #, c-format msgid "" "%s() called with fd_setsize (%u) less than FD_SETSIZE used by MHD (%d). Some " @@ -555,14 +555,14 @@ msgid "" "option.\n" msgstr "" -#: src/microhttpd/daemon.c:1244 src/microhttpd/daemon.c:4703 +#: src/microhttpd/daemon.c:1244 src/microhttpd/daemon.c:4705 #, 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:1474 src/microhttpd/daemon.c:9118 +#: src/microhttpd/daemon.c:1474 src/microhttpd/daemon.c:9128 msgid "" "Initiated daemon shutdown while \"upgraded\" connection was not closed.\n" msgstr "" @@ -654,8 +654,8 @@ msgid "Connection rejected by application. Closing connection.\n" msgstr "" #: src/microhttpd/daemon.c:2599 src/microhttpd/daemon.c:2628 -#: src/microhttpd/daemon.c:2886 src/microhttpd/daemon.c:5020 -#: src/microhttpd/daemon.c:6574 +#: src/microhttpd/daemon.c:2886 src/microhttpd/daemon.c:5022 +#: src/microhttpd/daemon.c:6577 #, c-format msgid "Error allocating memory: %s\n" msgstr "" @@ -681,7 +681,7 @@ msgstr "" msgid "TLS connection on non-TLS daemon.\n" msgstr "" -#: src/microhttpd/daemon.c:2947 src/microhttpd/daemon.c:8752 +#: src/microhttpd/daemon.c:2947 src/microhttpd/daemon.c:8762 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" @@ -727,13 +727,13 @@ msgstr "" msgid "Failed to signal resume via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:3566 +#: src/microhttpd/daemon.c:3565 msgid "" "Failed to signal resume of connection via inter-thread communication " "channel.\n" msgstr "" -#: src/microhttpd/daemon.c:3622 +#: src/microhttpd/daemon.c:3621 msgid "" "MHD_add_connection() has been called for daemon started without MHD_USE_ITC " "flag.\n" @@ -741,128 +741,128 @@ msgid "" "already added sockets.\n" msgstr "" -#: src/microhttpd/daemon.c:3636 src/microhttpd/daemon.c:3662 +#: src/microhttpd/daemon.c:3635 src/microhttpd/daemon.c:3661 msgid "MHD_add_connection() has been called with incorrect 'addrlen' value.\n" msgstr "" -#: src/microhttpd/daemon.c:3647 src/microhttpd/daemon.c:3673 +#: src/microhttpd/daemon.c:3646 src/microhttpd/daemon.c:3672 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:3693 +#: src/microhttpd/daemon.c:3692 #, c-format msgid "Failed to set nonblocking mode on new client socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3713 +#: src/microhttpd/daemon.c:3712 #, c-format msgid "Failed to suppress SIGPIPE on new client socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3737 +#: src/microhttpd/daemon.c:3736 msgid "Failed to set noninheritable mode on new client socket.\n" msgstr "" -#: src/microhttpd/daemon.c:3899 +#: src/microhttpd/daemon.c:3898 #, c-format msgid "Error accepting connection: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3912 +#: src/microhttpd/daemon.c:3911 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:3929 +#: src/microhttpd/daemon.c:3928 #, 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:3945 +#: src/microhttpd/daemon.c:3944 msgid "" "Accepted socket has zero-length address. Processing the new socket as a " "socket with unknown type.\n" msgstr "" -#: src/microhttpd/daemon.c:3958 +#: src/microhttpd/daemon.c:3957 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:3970 +#: src/microhttpd/daemon.c:3969 #, c-format msgid "Failed to set nonblocking mode on incoming connection socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:3984 +#: src/microhttpd/daemon.c:3983 msgid "Failed to set noninheritable mode on incoming connection socket.\n" msgstr "" -#: src/microhttpd/daemon.c:3996 +#: src/microhttpd/daemon.c:3995 #, c-format msgid "Failed to suppress SIGPIPE on incoming connection socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:4018 +#: src/microhttpd/daemon.c:4017 #, c-format msgid "Accepted connection on socket %d\n" msgstr "" -#: src/microhttpd/daemon.c:4064 src/microhttpd/daemon.c:9160 -#: src/microhttpd/daemon.c:9192 src/microhttpd/daemon.c:9225 -#: src/microhttpd/daemon.c:9339 +#: src/microhttpd/daemon.c:4063 src/microhttpd/daemon.c:9170 +#: src/microhttpd/daemon.c:9202 src/microhttpd/daemon.c:9235 +#: src/microhttpd/daemon.c:9349 msgid "Failed to join a thread.\n" msgstr "" -#: src/microhttpd/daemon.c:4243 +#: src/microhttpd/daemon.c:4242 msgid "Illegal call to MHD_get_timeout.\n" msgstr "" -#: src/microhttpd/daemon.c:4665 +#: src/microhttpd/daemon.c:4667 msgid "" "MHD_run_from_select() called with except_fd_set set to NULL. Such behavior " "is deprecated.\n" msgstr "" -#: src/microhttpd/daemon.c:4835 +#: src/microhttpd/daemon.c:4837 msgid "Could not obtain daemon fdsets.\n" msgstr "" -#: src/microhttpd/daemon.c:4854 +#: src/microhttpd/daemon.c:4856 msgid "Could not add control inter-thread communication channel FD to fdset.\n" msgstr "" -#: src/microhttpd/daemon.c:4880 +#: src/microhttpd/daemon.c:4882 msgid "Could not add listen socket to fdset.\n" msgstr "" -#: src/microhttpd/daemon.c:4948 +#: src/microhttpd/daemon.c:4950 #, c-format msgid "select failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:5097 src/microhttpd/daemon.c:5254 +#: src/microhttpd/daemon.c:5099 src/microhttpd/daemon.c:5256 #, c-format msgid "poll failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:5396 src/microhttpd/daemon.c:5628 +#: src/microhttpd/daemon.c:5398 src/microhttpd/daemon.c:5631 #, c-format msgid "Call to epoll_wait failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:5593 src/microhttpd/daemon.c:6184 +#: src/microhttpd/daemon.c:5595 src/microhttpd/daemon.c:6187 msgid "Failed to remove listen FD from epoll set.\n" msgstr "" -#: src/microhttpd/daemon.c:5911 +#: src/microhttpd/daemon.c:5914 #, c-format msgid "" "MHD_run()/MHD_run_wait() called for daemon started with " @@ -872,455 +872,455 @@ msgid "" "MHD_OPTION_APP_FD_SETSIZE option.\n" msgstr "" -#: src/microhttpd/daemon.c:6012 +#: src/microhttpd/daemon.c:6015 #, c-format msgid "Failed to block SIGPIPE on daemon thread: %s\n" msgstr "" -#: src/microhttpd/daemon.c:6075 +#: src/microhttpd/daemon.c:6078 msgid "The URL encoding is broken.\n" msgstr "" -#: src/microhttpd/daemon.c:6164 +#: src/microhttpd/daemon.c:6167 msgid "Using MHD_quiesce_daemon in this mode requires MHD_USE_ITC.\n" msgstr "" -#: src/microhttpd/daemon.c:6192 +#: src/microhttpd/daemon.c:6195 msgid "Failed to signal quiesce via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:6215 +#: src/microhttpd/daemon.c:6218 msgid "failed to signal quiesce via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:6379 +#: src/microhttpd/daemon.c:6382 msgid "" "GnuTLS priorities have been initialised with @LIBMICROHTTPD application-" "specific system-wide configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6385 +#: src/microhttpd/daemon.c:6388 msgid "" "GnuTLS priorities have been initialised with @SYSTEM system-wide " "configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6391 +#: src/microhttpd/daemon.c:6394 msgid "" "GnuTLS priorities have been initialised with GnuTLS default configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6397 +#: src/microhttpd/daemon.c:6400 msgid "GnuTLS priorities have been initialised with NORMAL configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6410 +#: src/microhttpd/daemon.c:6413 #, c-format msgid "Failed to set GnuTLS priorities. Last error: %s\n" msgstr "" -#: src/microhttpd/daemon.c:6488 +#: src/microhttpd/daemon.c:6491 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:6495 +#: src/microhttpd/daemon.c:6498 msgid "" "GnuTLS priorities have been initialised with priorities specified by " "application appended to @SYSTEM system-wide configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6502 +#: src/microhttpd/daemon.c:6505 msgid "" "GnuTLS priorities have been initialised with priorities specified by " "application appended to GnuTLS default configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6509 +#: src/microhttpd/daemon.c:6512 msgid "" "GnuTLS priorities have been initialised with priorities specified by " "application appended to NORMAL configuration.\n" msgstr "" -#: src/microhttpd/daemon.c:6523 +#: src/microhttpd/daemon.c:6526 #, c-format msgid "" "Failed to set GnuTLS priorities. Last error: %s. The problematic part starts " "at: %s\n" msgstr "" -#: src/microhttpd/daemon.c:6639 +#: src/microhttpd/daemon.c:6642 msgid "" "Warning: specified MHD_OPTION_CONNECTION_MEMORY_LIMIT value is too small and " "rounded up to 64.\n" msgstr "" -#: src/microhttpd/daemon.c:6665 +#: src/microhttpd/daemon.c:6668 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:6751 +#: src/microhttpd/daemon.c:6754 msgid "" "Warning: value \"1\", specified as the thread pool size, is ignored. Thread " "pool is not used.\n" msgstr "" -#: src/microhttpd/daemon.c:6765 +#: src/microhttpd/daemon.c:6768 #, c-format msgid "Specified thread pool size (%u) too big.\n" msgstr "" -#: src/microhttpd/daemon.c:6777 +#: src/microhttpd/daemon.c:6780 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:6786 +#: src/microhttpd/daemon.c:6789 msgid "" "Both MHD_OPTION_THREAD_POOL_SIZE option and MHD_USE_THREAD_PER_CONNECTION " "flag are specified.\n" msgstr "" -#: src/microhttpd/daemon.c:6803 src/microhttpd/daemon.c:6816 -#: src/microhttpd/daemon.c:6829 src/microhttpd/daemon.c:6842 -#: src/microhttpd/daemon.c:6894 src/microhttpd/daemon.c:6940 -#: src/microhttpd/daemon.c:6961 src/microhttpd/daemon.c:6983 -#: src/microhttpd/daemon.c:7312 +#: src/microhttpd/daemon.c:6806 src/microhttpd/daemon.c:6819 +#: src/microhttpd/daemon.c:6832 src/microhttpd/daemon.c:6845 +#: src/microhttpd/daemon.c:6897 src/microhttpd/daemon.c:6943 +#: src/microhttpd/daemon.c:6964 src/microhttpd/daemon.c:6986 +#: src/microhttpd/daemon.c:7322 #, c-format msgid "MHD HTTPS option %d passed to MHD but MHD_USE_TLS not set.\n" msgstr "" -#: src/microhttpd/daemon.c:6863 +#: src/microhttpd/daemon.c:6866 msgid "Error initializing DH parameters.\n" msgstr "" -#: src/microhttpd/daemon.c:6873 +#: src/microhttpd/daemon.c:6876 msgid "Diffie-Hellman parameters string too long.\n" msgstr "" -#: src/microhttpd/daemon.c:6884 +#: src/microhttpd/daemon.c:6887 msgid "Bad Diffie-Hellman parameters format.\n" msgstr "" -#: src/microhttpd/daemon.c:6919 +#: src/microhttpd/daemon.c:6922 #, c-format msgid "" "Setting priorities to '%s' failed: %s The problematic part starts at: %s\n" msgstr "" -#: src/microhttpd/daemon.c:6949 +#: src/microhttpd/daemon.c:6952 msgid "" "MHD_OPTION_HTTPS_CERT_CALLBACK requires building MHD with GnuTLS >= 3.0.\n" msgstr "" -#: src/microhttpd/daemon.c:6971 +#: src/microhttpd/daemon.c:6974 msgid "" "MHD_OPTION_HTTPS_CERT_CALLBACK2 requires building MHD with GnuTLS >= 3.6.3.\n" msgstr "" -#: src/microhttpd/daemon.c:7042 +#: src/microhttpd/daemon.c:7045 msgid "Digest Auth is disabled for this build of GNU libmicrohttpd.\n" msgstr "" -#: src/microhttpd/daemon.c:7060 +#: src/microhttpd/daemon.c:7063 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:7085 +#: src/microhttpd/daemon.c:7088 msgid "TCP fastopen is not supported on this platform.\n" msgstr "" -#: src/microhttpd/daemon.c:7109 +#: src/microhttpd/daemon.c:7112 msgid "" "Flag MHD_USE_PEDANTIC_CHECKS is ignored because another behaviour is " "specified by MHD_OPTION_STRICT_CLIENT.\n" msgstr "" -#: src/microhttpd/daemon.c:7122 +#: src/microhttpd/daemon.c:7125 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:7286 +#: src/microhttpd/daemon.c:7296 #, c-format msgid "MHD HTTPS option %d passed to MHD compiled without GNUtls >= 3.\n" msgstr "" -#: src/microhttpd/daemon.c:7336 +#: src/microhttpd/daemon.c:7346 #, c-format msgid "MHD HTTPS option %d passed to MHD compiled without HTTPS support.\n" msgstr "" -#: src/microhttpd/daemon.c:7346 +#: src/microhttpd/daemon.c:7356 #, c-format msgid "Invalid option %d! (Did you terminate the list with MHD_OPTION_END?).\n" msgstr "" -#: src/microhttpd/daemon.c:7376 +#: src/microhttpd/daemon.c:7386 #, c-format msgid "Call to epoll_create1 failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:7386 +#: src/microhttpd/daemon.c:7396 msgid "Failed to set noninheritable mode on epoll FD.\n" msgstr "" -#: src/microhttpd/daemon.c:7428 +#: src/microhttpd/daemon.c:7438 msgid "The epoll FD is too large to be used with fd_set.\n" msgstr "" -#: src/microhttpd/daemon.c:7510 +#: src/microhttpd/daemon.c:7520 #, c-format msgid "MHD_OPTION_APP_FD_SETSIZE value (%d) is not positive.\n" msgstr "" -#: src/microhttpd/daemon.c:7519 +#: src/microhttpd/daemon.c:7529 msgid "" "MHD_OPTION_APP_FD_SETSIZE is ignored for daemon started with " "MHD_USE_INTERNAL_POLLING_THREAD.\n" msgstr "" -#: src/microhttpd/daemon.c:7528 +#: src/microhttpd/daemon.c:7538 msgid "" "MHD_OPTION_APP_FD_SETSIZE is ignored for daemon started with MHD_USE_POLL.\n" msgstr "" -#: src/microhttpd/daemon.c:7540 +#: src/microhttpd/daemon.c:7550 #, 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:7565 +#: src/microhttpd/daemon.c:7575 msgid "The value provided for MHD_OPTION_LISTEN_SOCKET is invalid.\n" msgstr "" -#: src/microhttpd/daemon.c:7575 +#: src/microhttpd/daemon.c:7585 msgid "" "MHD_OPTION_LISTEN_SOCKET specified for daemon with MHD_USE_NO_LISTEN_SOCKET " "flag set.\n" msgstr "" -#: src/microhttpd/daemon.c:7605 +#: src/microhttpd/daemon.c:7615 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:7614 +#: src/microhttpd/daemon.c:7624 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:7895 +#: src/microhttpd/daemon.c:7905 msgid "Failed to initialise GnuTLS priorities.\n" msgstr "" -#: src/microhttpd/daemon.c:7907 +#: src/microhttpd/daemon.c:7917 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:7923 +#: src/microhttpd/daemon.c:7933 msgid "Using debug build of libmicrohttpd.\n" msgstr "" -#: src/microhttpd/daemon.c:7937 +#: src/microhttpd/daemon.c:7947 #, c-format msgid "Failed to create inter-thread communication channel: %s\n" msgstr "" -#: src/microhttpd/daemon.c:7952 +#: src/microhttpd/daemon.c:7962 msgid "" "file descriptor for inter-thread communication channel exceeds maximum " "value.\n" msgstr "" -#: src/microhttpd/daemon.c:7991 +#: src/microhttpd/daemon.c:8001 msgid "Specified value for NC_SIZE too large.\n" msgstr "" -#: src/microhttpd/daemon.c:8007 +#: src/microhttpd/daemon.c:8017 #, c-format msgid "Failed to allocate memory for nonce-nc map: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8025 +#: src/microhttpd/daemon.c:8035 msgid "MHD failed to initialize nonce-nc mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8046 +#: src/microhttpd/daemon.c:8056 msgid "MHD thread polling only works with MHD_USE_INTERNAL_POLLING_THREAD.\n" msgstr "" -#: src/microhttpd/daemon.c:8076 +#: src/microhttpd/daemon.c:8086 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:8095 src/microhttpd/daemon.c:8140 +#: src/microhttpd/daemon.c:8105 src/microhttpd/daemon.c:8150 msgid "The size specified for MHD_OPTION_SOCK_ADDR_LEN option is wrong.\n" msgstr "" -#: src/microhttpd/daemon.c:8107 src/microhttpd/daemon.c:8152 +#: src/microhttpd/daemon.c:8117 src/microhttpd/daemon.c:8162 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:8190 +#: src/microhttpd/daemon.c:8200 msgid "" "The 'sa_family' of the 'struct sockaddr' provided via MHD_OPTION_SOCK_ADDR " "option is not supported.\n" msgstr "" -#: src/microhttpd/daemon.c:8267 +#: src/microhttpd/daemon.c:8277 #, c-format msgid "Failed to create socket for listening: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8278 src/microhttpd/daemon.c:8471 +#: src/microhttpd/daemon.c:8288 src/microhttpd/daemon.c:8481 #, c-format msgid "" "Listen socket descriptor (%d) is not less than daemon FD_SETSIZE value " "(%d).\n" msgstr "" -#: src/microhttpd/daemon.c:8301 src/microhttpd/daemon.c:8320 -#: src/microhttpd/daemon.c:8343 src/microhttpd/daemon.c:8381 -#: src/microhttpd/daemon.c:8414 src/microhttpd/daemon.c:8446 +#: src/microhttpd/daemon.c:8311 src/microhttpd/daemon.c:8330 +#: src/microhttpd/daemon.c:8353 src/microhttpd/daemon.c:8391 +#: src/microhttpd/daemon.c:8424 src/microhttpd/daemon.c:8456 #, c-format msgid "setsockopt failed: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8353 +#: src/microhttpd/daemon.c:8363 msgid "Cannot allow listening address reuse: SO_REUSEPORT not defined.\n" msgstr "" -#: src/microhttpd/daemon.c:8389 +#: src/microhttpd/daemon.c:8399 msgid "" "Cannot disallow listening address reuse: SO_EXCLUSIVEADDRUSE not defined.\n" msgstr "" -#: src/microhttpd/daemon.c:8427 +#: src/microhttpd/daemon.c:8437 #, c-format msgid "Failed to bind to port %u: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8457 +#: src/microhttpd/daemon.c:8467 #, c-format msgid "Failed to listen for connections: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8558 +#: src/microhttpd/daemon.c:8568 #, c-format msgid "Failed to get listen port number: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8568 +#: src/microhttpd/daemon.c:8578 msgid "" "Failed to get listen port number (`struct sockaddr_storage` too small!?).\n" msgstr "" -#: src/microhttpd/daemon.c:8615 +#: src/microhttpd/daemon.c:8625 msgid "Listen socket has unknown address family!\n" msgstr "" -#: src/microhttpd/daemon.c:8632 +#: src/microhttpd/daemon.c:8642 #, c-format msgid "Failed to set nonblocking mode on listening socket: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8668 +#: src/microhttpd/daemon.c:8678 msgid "" "Combining MHD_USE_THREAD_PER_CONNECTION and MHD_USE_EPOLL is not supported.\n" msgstr "" -#: src/microhttpd/daemon.c:8683 +#: src/microhttpd/daemon.c:8693 msgid "MHD failed to initialize IP connection limit mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8696 +#: src/microhttpd/daemon.c:8706 msgid "Failed to initialize TLS support.\n" msgstr "" -#: src/microhttpd/daemon.c:8726 src/microhttpd/daemon.c:8803 -#: src/microhttpd/daemon.c:8923 +#: src/microhttpd/daemon.c:8736 src/microhttpd/daemon.c:8813 +#: src/microhttpd/daemon.c:8933 msgid "Failed to initialise internal lists mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8735 src/microhttpd/daemon.c:8811 -#: src/microhttpd/daemon.c:8932 +#: src/microhttpd/daemon.c:8745 src/microhttpd/daemon.c:8821 +#: src/microhttpd/daemon.c:8942 msgid "Failed to initialise mutex.\n" msgstr "" -#: src/microhttpd/daemon.c:8758 +#: src/microhttpd/daemon.c:8768 #, c-format msgid "Failed to create listen thread: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8822 +#: src/microhttpd/daemon.c:8832 #, c-format msgid "Failed to create worker inter-thread communication channel: %s\n" msgstr "" -#: src/microhttpd/daemon.c:8835 +#: src/microhttpd/daemon.c:8845 msgid "" "File descriptor for worker inter-thread communication channel exceeds " "maximum value.\n" msgstr "" -#: src/microhttpd/daemon.c:8896 +#: src/microhttpd/daemon.c:8906 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:8902 +#: src/microhttpd/daemon.c:8912 #, c-format msgid "Failed to create pool thread: %s\n" msgstr "" -#: src/microhttpd/daemon.c:9104 src/microhttpd/daemon.c:9137 +#: src/microhttpd/daemon.c:9114 src/microhttpd/daemon.c:9147 msgid "MHD_stop_daemon() called while we have suspended connections.\n" msgstr "" -#: src/microhttpd/daemon.c:9176 src/microhttpd/daemon.c:9282 -#: src/microhttpd/daemon.c:9320 +#: src/microhttpd/daemon.c:9186 src/microhttpd/daemon.c:9292 +#: src/microhttpd/daemon.c:9330 msgid "Failed to signal shutdown via inter-thread communication channel.\n" msgstr "" -#: src/microhttpd/daemon.c:9250 +#: src/microhttpd/daemon.c:9260 msgid "MHD_stop_daemon() was called twice." msgstr "" -#: src/microhttpd/daemon.c:9839 +#: src/microhttpd/daemon.c:9849 msgid "Failed to initialize winsock.\n" msgstr "" -#: src/microhttpd/daemon.c:9841 +#: src/microhttpd/daemon.c:9851 msgid "Winsock version 2.2 is not available.\n" msgstr "" -#: src/microhttpd/daemon.c:9850 src/microhttpd/daemon.c:9854 +#: src/microhttpd/daemon.c:9860 src/microhttpd/daemon.c:9864 msgid "Failed to initialise multithreading in libgcrypt.\n" msgstr "" -#: src/microhttpd/daemon.c:9860 +#: src/microhttpd/daemon.c:9870 msgid "libgcrypt is too old. MHD was compiled for libgcrypt 1.6.0 or newer.\n" msgstr "" 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 0x01000201 +#define MHD_VERSION 0x01000300 /* If generic headers don't work on your platform, include headers which define 'va_list', 'size_t', 'ssize_t', 'intptr_t', 'off_t', diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c @@ -3533,7 +3533,6 @@ resume_suspended_connections (struct MHD_Daemon *daemon) /* Data forwarding was finished (for TLS connections) AND * application was closed upgraded connection. * Insert connection into cleanup list. */ - if ( (NULL != daemon->notify_completed) && (! MHD_D_IS_USING_THREAD_PER_CONN_ (daemon)) && (pos->rq.client_aware) ) @@ -4548,13 +4547,16 @@ internal_run_from_select (struct MHD_Daemon *daemon, { /* do not have a thread per connection, process all connections now */ struct MHD_Connection *pos; - for (pos = daemon->connections_tail; NULL != pos; pos = pos->prev) + struct MHD_Connection *prev; + + for (pos = daemon->connections_tail; NULL != pos; pos = prev) { MHD_socket cs; bool r_ready; bool w_ready; bool has_err; + prev = pos->prev; cs = pos->socket_fd; if (MHD_INVALID_SOCKET == cs) continue; @@ -5598,7 +5600,8 @@ MHD_epoll (struct MHD_Daemon *daemon, (MHD_NO != resume_suspended_connections (daemon)) ) millisec = 0; - timeout_ms = get_timeout_millisec_int (daemon, millisec); + timeout_ms = get_timeout_millisec_int (daemon, + millisec); /* Reset. New value will be set when connections are processed. */ /* Note: Used mostly for uniformity here as same situation is