gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libmicrohttpd] branch master updated (4f019420 -> a4ae51f5)


From: gnunet
Subject: [libmicrohttpd] branch master updated (4f019420 -> a4ae51f5)
Date: Sun, 19 Dec 2021 16:59:45 +0100

This is an automated email from the git hooks/post-receive script.

karlson2k pushed a change to branch master
in repository libmicrohttpd.

    from 4f019420 microhttpd.h: minor doxy fixes
     new c229373f ChangeLog updated
     new 969e6404 Updated HTTP headers macros from registry
     new fb25f5f3 apply-all.sh: simplified usage
     new a4ae51f5 Released GNU libmicrohttpd 0.9.74

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ChangeLog                              | 311 +++++++++++++++++++
 NEWS                                   | 152 ++++++++++
 configure.ac                           |   6 +-
 contrib/autotools-patches/apply-all.sh |   5 +-
 po/libmicrohttpd.pot                   | 540 +++++++++++++++++++--------------
 src/include/microhttpd.h               | 104 ++++---
 6 files changed, 851 insertions(+), 267 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 728cd156..417f4f40 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,317 @@
+Web 19 Dec 2021 18:30:00 MSK
+    Releasing GNU libmicrohttpd 0.9.74 -EG
+
+December 2021
+    Fixed doxy for MHD_suspend_connection().
+    Some code improvements for new test test_client_put_stop.
+    Added special log message if thread creation failed due to system limits.
+    Fully restructured new_connection_process_() to correctly handle errors,
+    fixed missing decrement of number of daemon connections if any error 
+    encountered, fixed app notification of connection termination when app has
+    not been notified about connection start, fixed (highly unlikely) reset of
+    the list of connections if reached daemon's connections limit.
+    configure: fixed some compiler warnings reported in config.log.
+    Fixed tests on FreeBSD to support system-limited rate of RST packets and
+    'blackhole' system setting. -EG
+    Fixed tests for libmagic to really use libmagic in examples. -CG
+    Used tricks in code formatting to workaround uncrustify bugs.
+    configure: improved compatibility with various shells.
+    configure: added selective enable of sanitizers.
+    Fixed compatibility with old GnuTLS versions.
+    Fixed tests compatibility with old libcurl versions.
+    Fixed busy-waiting in test_timeout (fixed CPU load spikes in the test).
+    test_https_time_out: check rewritten, previously it is was no-op.
+    test_upgrade{,_large}: fixed passing of socket value to GnuTLS on W32.
+    Simplified Makefile for HTTPS tests.
+    Added detection of old broken GnuTLS builds (on RHEL6 and clones) and
+    disabled some tests broken with these builds.
+    Muted compiler warnings with old libcurl versions.
+    Reworked dlltool support: added support for weakened oversimplified
+    half-broken llvm-dlltool
+    Silenced MS lib tool warning and MS lib tool invocation.
+    Added Makefiles rules for automatic regeneration of all required files if
+    anything is missing.
+    Added Makefile silent rules support for W32 RC and W32 static libs.
+    Added local patches for autotools (mainly for libtool) to build MHD
+    correctly on modern MinGW64/Clang.
+    Updated HTTP headers macros from registry. -EG
+
+November 2021
+    Clarified comments and doxy for MHD_str* and related tests.
+    MHD_uint32_to_strx(): rewritten for readability and minor optimization,
+    used indexes instead of pointers.
+    Documented in doxy how to use MHD_AccessHandlerCallback.
+    mhd_sockets: added more network error codes.
+    W32 socket pair: set TCP_NODELAY to avoid unwanted buffering and delays.
+    Additional doxy fixes in microhttpd.h.
+    Fixed blocking sockets setting in tests and examples for W32.
+    Added checks for fcntl() results in tests and examples.
+    Added series of tests based on simple HTTP client implementation developed
+    for testing of MHD.
+    Renamed 'early_response' connection flag to 'discard_request' and reworked
+    handling of connection's flags.
+    Clarified request termination reasons doxy, fixed reporting of 
+    MHD_REQUEST_TERMINATED_READ_ERROR (previously this code was not really used
+    in reporting).
+    Enforce all libcurl tests exit code to be zero or one.
+    Rewritten client upload processing: removed redundant checks, fixed
+    skipping of chunk closure when not data is not received yet, fixed skipping
+    of the last LF in termination chunk, handle correctly chunk sizes with more
+    than 16 digits (leading zeros are valid according to HTTP RFC), fixed
+    handling of CRCR, LFCR, LFLF, and bare CR as single line delimiters, report
+    error when invalid chunk format is received without waiting to receive 
+    (possibly missing) end of the line, reply to the client with special error
+    if chunk size is too large to be handled by MHD (>16 EiB).
+    Added error reply if client used too large request payload (>16 EiB).
+    Fixed return value for MHD_FEATURE_AUTOSUPPRESS_SIGPIPE on W32, now it
+    returns MHD_YES as W32 does not need sigpipe suppression.
+    configure: reordered and improved headers detection. Some headers require
+    other headers to be included before, now configure supports it.
+    Added missing ifdef guard for <stdbool.h>.
+    mhd_sockets: reordered includes for better compatibility.
+    Some code readability and formatting improvements. -EG
+
+October 2021
+    Added test family test_toolarge to check correct handling of the buffers
+    when the size of data is larger than free space.
+    Fixed missing updated of read and write buffers sizes.
+    Added detection and use of supported "noreturn" keyword for function 
+    declaration. It should help compiler and static analyser.
+    Added support for leak sanitizer.
+    Fixed analyser errors on W32.
+    Partially reworked memory allocation from the pool, more robust
+    implementation, always track read and write buffers.
+    Added custom memory poisoning in memory pool with address sanitizer.
+    Added missing update of the read buffer size.
+    Addition for doxy for new behaviour of MHD_del_response_header().
+    Added two tests with non-standard symbols in requests.
+    Removed double close of connection with error in headers processing.
+    Respond to the client with error if chunked request has broken chunked
+    encoding as required by HTTP RFC instead of just closing the connection.
+    Fixed request headers processing. Do not recognize bare CR as end of line.
+    Fixed processing of CRCR, bare CR, LFCR, and LFLF as end of the line for
+    request chunked encoding. Now only CRLF or bare LF are recognized as end
+    of line.
+    Added Lawrence Sebald to the AUTHORS file (iovec-based responses).
+    Check for PAGESIZE and PAGE_SIZE macros and check whether they can be used
+    for static variable initialization.
+    Include "MHD_config.h" before all other includes to set macros required to
+    be set before standard includes.
+    Chunked response: abort with error if application returns more data than
+    requested.
+    Monotonic clock: use only native clock on W32 as all other clocks are just
+    wrappers.
+    W32: fixed builds with MSVC, added projects for VS2022, added MSVC
+    universal project that use latest available toolset, use C17 if supported.
+    Chunked response: fixed calculation of number of bytes left to send.
+    microhttpd.h: doxy clarifications for sockets polling.
+    Updated HTTP statuses, methods, and headers names from the registries.
+    Further improved doxy for MHD_add_response_header().
+    A few comments improvements and clarifications.
+    Added internal connection's flag indicating discard of the request. -EG
+    Websockets update by David Gausmann. -DG
+    Fixed reported value for MHD_CONNECTION_INFO_CONNECTION_TIMEOUT.
+    Minor code readability improvements in MHD_set_connection_option().
+    Improved doxy for MHD_get_timeout().
+    Memorypool: minor code improvements. -EG
+
+September 2021
+    Improved system includes headers detection and usage. Removed unused
+    headers detection.
+    Added indirect calculation of maximum values at compile time by
+    using types size detection. These values are used only to mute
+    compiler warnings.
+    Fixed pre-compiler errors if various *_MAX macros defined with
+    non-digits symbols not readable for pre-compiler.
+    Limit number of used CPU cores in tests to 6, unless heavy tests are
+    enabled.
+    Disabled parallel tests with libcurl if heavy tests are enabled.
+    configure: removed '--enable-sanitizer' and added '--enable-sanitizers'
+    parameters. Added testing for supported sanitizers and enabling only
+    supported sanitizers.
+    Added support for run-time sanitizers settings for tests when
+    sanitizers are enabled.
+    Added support for undefined behavior sanitizer without run-time library.
+    Fixed various undefined behavior sanitizer detected errors, improved
+    portability.
+    Fixed how bitwise NOT is used with enum, fixed portability.
+    microhttpd.h: changed macros MHD_CONTENT_READER_* to use ssize_t.
+    test_postprocessor: added more check, improved error reporting, added
+    new test data.
+    postprocessor: fixed undefined behavior (memcpy(), memmove() with zero
+    size and NULL pointer).
+    Updated copyright year in W32 DLLs.
+    postprocessor: fixed empty key processing.
+    test_postprocessor: added tests with hex-encoded values.
+    postprocessor: fixed incomplete processing of the last part of hex-encoded
+    value if data was broken into certain sized pieces.
+    Used type specifiers for printf() from inttypes.h to improved compatibility
+    with various run-time libs. Fallback to standard values if type specifiers
+    are not defined.
+    Added detection of used run-time library (MSVCRT/UCRT) on W32.
+    testcurl: fixed incorrect case-insensitive match for method name. Method
+    name must be checked by using case-sensitive match.
+    microhttpd.h: clarified some doxy descriptions.
+    Prevented potential double sending of error responses.
+    Fixed application notification with MHD_REQUEST_TERMINATED_COMPLETED_OK
+    when error response has been sent (MHD_REQUEST_TERMINATED_WITH_ERROR is
+    used).
+    Avoid trying to send error response if response is already being sent.
+    Improved log error message when error response is processing. -EG
+
+August 2021
+    Silently drop "keep-alive" token from response "connection" header,
+    "keep-alive" cannot be enforced and always enabled if possible.
+    Further improved doxy for MHD_add_response_header().
+    Added detection of the "Date:" header in the response headers set by
+    app at response forming time.
+    Disallow space in response header name, allow tab in response header
+    value.
+    Added internal MHD_uint8_to_str_pad() function.
+    Used internal MHD_uint8_to_str_pad() in datestamp generation function.
+    Added detection and reporting of incorrect "Upgrade" responses. -EG
+    Fixed short busy waiting (up to one second) when connection is going
+    to be closed. -AI
+    Minor improvement for test_callback, test_get_chunked
+    Fixed chunked responses with known size.
+    Added two more tests for chunked response.
+    Fixed chunked responses with predefined data (without data callback).
+    Fixed calculation of the buffer size for the next response chunk.
+    Completely rewritten reply header build function. The old version
+    had several levels of hacks, was unmaintainable, did not follow
+    HTTP specification in details; fixed used caseless header matching
+    where case-sensitive matching must be used; removed two passes of
+    header building. New version use clear logic and can be extended
+    when needed.
+    Changed behaviour: "Connection: keep-alive" is not being sent
+    for HTTP/1.1 connection (as per HTTP RFC).
+    test_get_chunked: fixed error reporting.
+    HTTPS tests: fixed memory leaks if function failed.
+    libcurl tests: improved handling of curl multi_*.
+    Added two tests for correct choice of "Keep-Alive" or "Close".
+    Simplified Makefile for testcurl.
+    Fixed select() error handling in tests.
+    microhttpd.h: minor macro formatting
+    Changed behaviour: if response size is unknown and chunked encoding is
+    allowed, chunked encoding is used even for non-keep-alive connection as
+    required by HTTP RFC.
+    Added two more tests for chunked replies.
+    Simplified keepalive_possible(); added new value for MHD_ConnKeepAlive,
+    added third state "Upgrade".
+    Changed behaviour: used HTTP/1.1 replies for HTTP/1.0 requests as
+    required by HTTP RFC. HTTP/1.0 reply still can be enforced by response
+    flag.
+    Added more doxy for MHD_ResponseFlags, added new names with the same
+    values as old names: MHD_RF_HTTP_1_0_COMPATIBLE_STRICT and
+    MHD_RF_HTTP_1_0_SERVER.
+    Added new value MHD_RF_SEND_KEEP_ALIVE_HEADER to enforce sending of
+    "Connection: keep-alive" even for HTTP/1.1 clients when keep-alive is
+    used.
+    test_get_close_keep_alive: added more combinations of parameters to
+    check.
+    Added separate flag for chunked response in connection instead of
+    reusing the same flag as for chunked request.
+    Added new connection's flag "stop_with_error".
+    Fixed empty first line processing: the request could be not processed
+    unless something else kicks next processing the same connection again.
+    Added new connection states: MHD_CONNECTION_REQ_LINE_RECEIVING,
+    MHD_CONNECTION_FULL_REQ_RECEIVED, MHD_CONNECTION_START_REPLY to
+    simplify states logic.
+    Changed write buffer allocation logic: as connection buffer size is
+    known and fixed, use initially use full buffer for writing and reduce
+    size of part used for writing if another allocation from the same
+    buffer needs to be done. Implemented helper function to automatically
+    reduce the size of read or write part to allocate buffer for other
+    needs.
+    Added define of NDEBUG if neither _DEBUG nor NDEBUG are defined.
+    As accepted sockets inherit non-blocking flag from listening socket
+    on all platform except Linux, track this state to use less number
+    of syscalls.
+    Fixed compiler and static analyser warnings.
+    Moved HTTPS tests helper file to the HTTPS tests directory.
+    Minor Makefiles cleanup.
+    Added support for new monotonic clock ids.
+    Added new internal monotonic clock function with milliseconds accuracy.
+    Fixed support of custom connection timeout in thread-per-connection mode.
+    Added more error checking to test_timeout.
+    microhttpd.h: removed duplicated macro.
+    Refined timeouts handling. Switched from seconds resolution to milliseconds
+    resolution, added automatic detection and support of low-resolution system
+    clock to avoid busy-waiting at connection expiration. Added log message
+    for too large timeout period (> 146 million years) with trim to supported
+    values. -EG
+
 Wed 04 Aug 2021 06:56:52 PM CEST
     Introduce new MHD_CONNECTION_INFO_HTTP_STATUS. -CG
 
+July 2021
+    Added automatic response flags with detection when response
+    is being formed.
+    Added special processing for response "Connection" headers, combined
+    multiple "Connection" headers into single header.
+    Restructured MSVC project files.
+    Changed MSVC project defaults to Vista+ (WinXP is still supported).
+    Fixed copy-paste error in mhd_aligh.h, added support for MSVC.
+    Added internal function for printing hex and decimals numbers.
+    Reply chunked body handling fixes, used new internal functions
+    instead of snprintf().
+    Added automatic response flag when app sets chunked encoding header.
+    New internal function for chunked reply footer forming. Unification with
+    reply header forming function just over-complicated things and made
+    function hardly maintainable.
+    Added new function MHD_get_reason_phrase_len_for(), related tests and
+    updated scripts for response phrases.
+    Added more tests for chunked replies.
+    Added function to reset connection state after finishing processing of
+    request-reply to prepare for the next request.
+    Added even more tests for chunked replies.
+    Added internal function for printing uint64_t decimal numbers. -EG
+
+June 2021
+    Tests: implemented checking of response footer.
+    Fixed loss of incoming data if more than half of buffer is
+    used for the next request data.
+    Fixed completely broken calculation of request header size.
+    Chunked response: do not ask app callback for more data then
+    it is possible to process (more than 16 MBytes). 
+    Check and report if app used wrong response code (>999 or <100)
+    Refuse to add second "Transfer-Encoding" header.
+    HTTPS tests: check whether all libcurl function succeeded.
+    HTTPS tests: implemented new detection of TLS backend.
+    HTTPS tests: fixed tests with new TLS defaults (SSL forbidden).
+    Implemented detection of basic HTTP methods, fixed wrong
+    caseless matching for HTTP method names.
+    MHD_create_response_*() functions: improved doxy.
+    MHD_add_response_header: added detailed comment about automatic
+    headers.
+    Do not allow responses with 1xx codes for HTTP/1.0 requests.
+    Fixed used order of headers: now user response headers are used in
+    the same order as was added by application.
+    Added new internal function MHD_get_response_element_n_().
+    Added detection of more compiler built-ins for bits rotations.
+    Minor optimisation of caseless strings matching.
+    Added MHD_str_remove_token_caseless_() function and tests.
+    Added MHD_str_remove_tokens_caseless_() function and tests. -EG
+
+May 2021
+    Doxy description clarifications for MHD_get_timeout() and related
+    functions.
+    Added MHD_create_response_from_buffer_with_free_callback_cls().
+    Added SHA-1 calculation (required for WebSockets).
+    Added new internal header mhd_aligh.h for checking alignment of
+    variables.
+    Fixed SHA-256 and MD5 calculation with unaligned data.
+    Added tests for hashes with unaligned data.
+    Used compiler built-ins for bits rotations.
+    Added detection of HTTP version at early stage.
+    Added early response of unsupported HTTP version.
+    Fixed wrong caseless matches for HTTP version strings.
+    Added calculation of error responses at compile time (avoided
+    repeated strlen() for known data). -EG
+
+April 2021
+    New test for reply chunked encoding. -EG
+
 Mon 26 Apr 2021 02:09:46 PM CEST
     Importing experimental Websocket support by David Gausmann. -CG
 
diff --git a/NEWS b/NEWS
index 8cd7709f..4cc371d7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,155 @@
+Web 19 Dec 2021 18:30:00 MSK
+Released GNU libmicrohttpd 0.9.74
+
+    This release brings a lot of fixes and improvements, and
+    important new features.
+    The most significant addition is the new experimental
+    implementation of WebSockets contributed by David Gausmann. This
+    implementation is not fully tested yet so currently it is disabled
+    by default.
+    Other changes include a lot of improvements and clarifications
+    in doxy comments in microhttpd.h header file, improved compliance
+    with the RFC HTTP specifications, the new implementation of reply
+    header forming, the new implementation of request chunked encoding
+    parsing, new automatic error replies, internal optimisations, and
+    many important fixes, including fixes for long-standing bugs.
+
+    More detailed list of notable changes:
+
+    API changes:
+    + Added new function MHD_get_reason_phrase_len_for().
+    + Added MHD_CONNECTION_INFO_HTTP_STATUS type of information
+      queried by MHD_get_connection_info().
+    + Added new response flag MHD_RF_SEND_KEEP_ALIVE_HEADER to force
+      sending of "keep-alive" header even if not required by RFC.
+    + Added new response creation function
+      MHD_create_response_from_buffer_with_free_callback_cls() with
+      custom cleanup callback.
+    + Added new response flag MHD_RF_HTTP_1_0_COMPATIBLE_STRICT with
+      the same functionality as existing MHD_RF_HTTP_VERSION_1_0_ONLY
+      flag. The old flag will be deprecated.
+    + Added new response flag MHD_RF_HTTP_1_0_SERVER with the same
+      functionality as existing MHD_RF_HTTP_VERSION_1_0_RESPONSE flag.
+      The old flag will be deprecated.
+
+    New features:
+    + Added experimental WebSockets extension with separate header.
+      Disabled by default as it is not fully tested yet.
+    + Added '--enable-sanitizers[=address,undefined,leak,user-poison]'
+      configure parameter (instead of '--enable-sanitizer'),
+      implemented custom memory poisoning for memory pools.
+
+    Improvements and enhancements:
+    * Doxy function descriptions was corrected, clarified, extended,
+      and improved. Now it should be much easier to learn MHD just by
+      reading the headers.
+    * Completely rewritten reply header forming. New implementation is
+      more robust, simpler maintainable and expandable, and better
+      follows RFC HTTP specifications.
+    * Performance improvements: now HTTP version and request method are
+      decoded one time only (previously MHD used string comparison many
+      times during processing the data).
+    * Rewritten request chunked payload decoding. The new
+      implementation better conforms to the HTTP RFC, detects format
+      problems earlier, replies to the clients with description of
+      detected problems, handles untypical (but syntactically correct)
+      values properly.
+    * Added special replies for wrong/unsupported HTTP versions in
+      requests, broken HTTP chunked encoding in requests,
+    * As required by HTTP RFC, added automatic error replies if client
+      used broken chunked encoding, too large chunk size, too large
+      payload size, or broken Content-Length header.
+    * Optimized connection's memory pool handling.
+    * Changed timeout precision from one second to one millisecond.
+    * Added some checks for incorrect user data, reporting problems in
+      MHD log.
+    * Improved performance of hash calculations functions by using
+      compiler built-ins (if available).
+    * Implemented SHA-1 calculations (required for WebSockets).
+    * Added universal MSVC project that works with any (sufficiently
+      new) version of MSVC.
+    * Developed simple HTTP client to test MHD under very special
+      conditions.
+    * Implemented 45 new tests.
+    * Improved existing tests to test more aspects of MHD.
+    * Added check for correct results of system and libcurl functions.
+    * Response headers are checked during forming of responses.
+    * HTTPS tests were improved.
+    * Added rebuild on W32 of all required files if files are missing.
+    * Many internal optimisations and improvements.
+
+    Functionality changes:
+    * Keep-alive header is omitted by default for HTTP/1.1 connections.
+      Use of header can be enforced by response flag.
+    * Chunked encoding is used for HTTP/1.1 non-keep-alive connections
+      for responses with unknown size. Previously MHD used "indication
+      of the end of the response by closing connection" in such cases,
+      however it is not correct for HTTP/1.1 connections as per HTTP
+      RFC.
+    * As required by HTTP RFC, use HTTP/1.1 version instead of HTTP/1.0
+      in reply headers when client is HTTP/1.0 . HTTP/1.0 version can
+      be enforced by response flag.
+    * User response headers are used in replies in the same order as
+      was added by application.
+    * Allowed tab characters in response header values.
+    * All custom "Connection:" response headers are automatically
+      combined into single "Connection:" header.
+    * "keep-alive" token silently dropped from custom "Connection:"
+      response header. "Keep-alive" cannot be enforced and used
+      automatically if possible.
+    * Allow tab character in custom response header value.
+    * Disallow space character in custom response header value.
+    * Do not allow responses with 1xx codes for HTTP/1.0 requests.
+    * Detected and reported incorrect "Upgrade" responses.
+    * W32 targets are changed to Vista+ by default. XP is supported
+      still.
+
+    Fixes:
+    # Fixed short busy-waiting (up to one second) when connection is
+      going to be expired and closed.
+    # Fixed handling of errors during start of new connection, fixed
+      inability to accept new connections in thread-per-connection mode
+      due to the missing decrement of number of daemon's connections if
+      start of new thread is failed.
+    # Fixed incorrect parsing of LFLF, LFCR, CRCR, and bare CR as
+      single linefeed in request header and request chunked payload.
+      Now only CRLF or bare LF are recognized as linefeed.
+    # Fixed response chunked encoding handling. Now it works properly
+      with non-keep-alive connection, with fixed size replies (if
+      chunked was enforced by header), and in other situations.
+    # Other fixes for chunked replies.
+    # Fixed handling of custom connection timeout in thread-per-
+      connection mode.
+    # Fixed wrongly used MHD_REQUEST_TERMINATED_COMPLETED_OK code for
+      application notification when MHD_REQUEST_TERMINATED_WITH_ERROR
+      code must be used.
+    # Fixed code MHD_REQUEST_TERMINATED_READ_ERROR not reported (code
+      MHD_REQUEST_TERMINATED_WITH_ERROR was incorrectly used instead).
+    # Fixed handling of request chunked encoding with untypical
+      formatting.
+    # Fixed processing of last part of hex-encoded values under
+      certain conditions.
+    # Fixed value returned for MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE.
+    # Fixed returned value for MHD_FEATURE_AUTOSUPPRESS_SIGPIPE on W32,
+      now it is MHD_YES as W32 does not need SIGPIPE suppression.
+    # Fixed portability of bitwise NOT for enums values.
+    # Fixed SHA-256 and MD5 calculations with unaligned data.
+    # Fixed incorrect caseless matching for HTTP version.
+    # Fixed incorrect caseless matching for request method.
+    # Fixed compatibility with old GnuTLS versions.
+    # Fixed compiler warnings on 32-bits platforms.
+    # Fixed blocking sockets setting in tests and examples for W32.
+    # Fixed examples to really use libmagic if present.
+    # HTTPS tests were fixed.
+    # Fixed libcurl test with case-insensitive match for HTTP methods,
+      method names must use case-sensitive match.
+    # Fixed tests compatibility with old libcurl versions.
+    # Fixed build on W32 with llvm-dlltool (this tool is too 
+      oversimplified)
+
+    -- Evgeny Grin (Karlson2k)
+
+
 Sun 25 Apr 2021 14:00:00 MSK
 Released GNU libmicrohttpd 0.9.73
 
diff --git a/configure.ac b/configure.ac
index e9a15565..1e5552ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,15 +23,15 @@
 #
 AC_PREREQ([2.64])
 LT_PREREQ([2.4.0])
-AC_INIT([GNU Libmicrohttpd],[0.9.73],[libmicrohttpd@gnu.org])
+AC_INIT([GNU Libmicrohttpd],[0.9.74],[libmicrohttpd@gnu.org])
 AC_CONFIG_AUX_DIR([build-aux])
 AM_INIT_AUTOMAKE([silent-rules] [subdir-objects])
 AC_CONFIG_HEADERS([MHD_config.h])
 AC_CONFIG_MACRO_DIR([m4])
 
-LIB_VERSION_CURRENT=70
+LIB_VERSION_CURRENT=71
 LIB_VERSION_REVISION=0
-LIB_VERSION_AGE=58
+LIB_VERSION_AGE=59
 AC_SUBST(LIB_VERSION_CURRENT)
 AC_SUBST(LIB_VERSION_REVISION)
 AC_SUBST(LIB_VERSION_AGE)
diff --git a/contrib/autotools-patches/apply-all.sh 
b/contrib/autotools-patches/apply-all.sh
index 0febcd2d..ed9c4268 100755
--- a/contrib/autotools-patches/apply-all.sh
+++ b/contrib/autotools-patches/apply-all.sh
@@ -8,7 +8,8 @@
 # Based on Debian SID baseline files as of December 2021.
 #
 
-patchesdir="$(pwd)"
+patchesdir="$(dirname "$BASH_SOURCE")" || exit 2
+test -n "$patchesdir" || exit 2
 
 patches=(
   0003-Pass-various-flags-to-GCC.patch
@@ -23,7 +24,7 @@ patches=(
 
 failed=( )
 
-cd ../.. || exit 1
+cd "${patchesdir}/../.." || exit 1
 
 for patch in ${patches[@]}; do
   patch -N -p1 --no-backup-if-mismatch -r - -i "${patchesdir}/${patch}" || 
failed+=("$patch")
diff --git a/po/libmicrohttpd.pot b/po/libmicrohttpd.pot
index 3abf54eb..be969a8c 100644
--- a/po/libmicrohttpd.pot
+++ b/po/libmicrohttpd.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU libmicrohttpd 0.9.73\n"
+"Project-Id-Version: GNU libmicrohttpd 0.9.74\n"
 "Report-Msgid-Bugs-To: libmicrohttpd@gnu.org\n"
-"POT-Creation-Date: 2021-04-24 21:59+0300\n"
+"POT-Creation-Date: 2021-12-19 18:30+0300\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,23 +17,23 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/microhttpd/connection_https.c:161
+#: src/microhttpd/connection_https.c:167
 msgid "Error: received handshake message out of context.\n"
 msgstr ""
 
-#: src/microhttpd/mhd_locks.h:125
+#: src/microhttpd/mhd_locks.h:127
 msgid "Failed to destroy mutex.\n"
 msgstr ""
 
-#: src/microhttpd/mhd_locks.h:158
+#: src/microhttpd/mhd_locks.h:160
 msgid "Failed to lock mutex.\n"
 msgstr ""
 
-#: src/microhttpd/mhd_locks.h:184
+#: src/microhttpd/mhd_locks.h:186
 msgid "Failed to unlock mutex.\n"
 msgstr ""
 
-#: src/microhttpd/internal.h:96
+#: src/microhttpd/internal.h:105
 msgid "Failed to close FD.\n"
 msgstr ""
 
@@ -71,241 +71,267 @@ msgstr ""
 msgid "Authentication failed, arguments do not match.\n"
 msgstr ""
 
-#: src/microhttpd/digestauth.c:1289
+#: src/microhttpd/digestauth.c:1290
 msgid "Digest size mismatch.\n"
 msgstr ""
 
-#: src/microhttpd/digestauth.c:1382
+#: src/microhttpd/digestauth.c:1383
 msgid "Could not register nonce (is the nonce array size zero?).\n"
 msgstr ""
 
-#: src/microhttpd/digestauth.c:1407
+#: src/microhttpd/digestauth.c:1408
 msgid "Failed to allocate memory for auth response header.\n"
 msgstr ""
 
-#: src/microhttpd/digestauth.c:1449
+#: src/microhttpd/digestauth.c:1450
 msgid "Failed to add Digest auth header.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:136
+#: src/microhttpd/daemon.c:137
 #, c-format
 msgid "Fatal error in GNU libmicrohttpd %s:%u: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:449
+#: src/microhttpd/daemon.c:450
 msgid "Failed to add IP connection count node.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:507
+#: src/microhttpd/daemon.c:508
 msgid "Failed to find previously-added IP address.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:513
+#: src/microhttpd/daemon.c:514
 msgid "Previously-added IP address had counter of zero.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:565
+#: src/microhttpd/daemon.c:566
 msgid "Too long trust certificate.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:577
+#: src/microhttpd/daemon.c:578
 msgid "Bad trust certificate format.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:602
+#: src/microhttpd/daemon.c:603
 msgid "Too long key or certificate.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:623
+#: src/microhttpd/daemon.c:624
 msgid ""
 "Failed to setup x509 certificate/key: pre 3.X.X version of GnuTLS does not "
 "support setting key password.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:637
+#: src/microhttpd/daemon.c:638
 #, c-format
 msgid "GnuTLS failed to setup x509 certificate/key: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:652
+#: src/microhttpd/daemon.c:653
 msgid "You need to specify a certificate and key location.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:682
+#: src/microhttpd/daemon.c:683
 #, c-format
 msgid "Error: invalid credentials type %d specified.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1086
+#: src/microhttpd/daemon.c:1093
 #, c-format
 msgid "Maximum socket in select set: %d\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1147
+#: src/microhttpd/daemon.c:1156
 msgid ""
 "MHD_get_fdset2() called with except_fd_set set to NULL. Such behavior is "
 "unsupported.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1361 src/microhttpd/daemon.c:7387
+#: src/microhttpd/daemon.c:1373 src/microhttpd/daemon.c:7523
 msgid ""
 "Initiated daemon shutdown while \"upgraded\" connection was not closed.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1375 src/microhttpd/daemon.c:1613
-msgid "Failed to forward to application "
+#: src/microhttpd/daemon.c:1387
+#, c-format
+msgid ""
+"Failed to forward to application %<PRIu64> bytes of data received from "
+"remote side: application shut down socket.\n"
+msgstr ""
+
+#: src/microhttpd/daemon.c:1555
+#, c-format
+msgid ""
+"Failed to forward to remote client %<PRIu64> bytes of data received from "
+"application: %s\n"
+msgstr ""
+
+#: src/microhttpd/daemon.c:1625
+#, c-format
+msgid ""
+"Failed to forward to application %<PRIu64> bytes of data received from "
+"remote side: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1543 src/microhttpd/daemon.c:1669
-msgid "Failed to forward to remote client "
+#: src/microhttpd/daemon.c:1681
+#, 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:1739
+#: src/microhttpd/daemon.c:1751
 msgid "Error preparing select.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1774 src/microhttpd/daemon.c:1929
-#: src/microhttpd/daemon.c:2073
+#: src/microhttpd/daemon.c:1786 src/microhttpd/daemon.c:1940
+#: src/microhttpd/daemon.c:2097
 #, c-format
 msgid "Error during select (%d): `%s'\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1824 src/microhttpd/daemon.c:1950
-#: src/microhttpd/daemon.c:2142
+#: src/microhttpd/daemon.c:1836 src/microhttpd/daemon.c:1961
+#: src/microhttpd/daemon.c:2166
 #, c-format
 msgid "Error during poll: `%s'\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:1913 src/microhttpd/daemon.c:2055
+#: src/microhttpd/daemon.c:1924 src/microhttpd/daemon.c:2079
 msgid "Failed to add FD to fd_set.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2195
+#: src/microhttpd/daemon.c:2218
 msgid "Processing thread terminating. Closing connection.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2225
+#: src/microhttpd/daemon.c:2248
 msgid ""
 "Failed to signal thread termination via inter-thread communication channel.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2305
+#: src/microhttpd/daemon.c:2330
 msgid "Internal server error. This should be impossible.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2315 src/microhttpd/daemon.c:2353
+#: src/microhttpd/daemon.c:2340 src/microhttpd/daemon.c:2379
 msgid "PSK not supported by this server.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2330
+#: src/microhttpd/daemon.c:2355
 msgid "PSK authentication failed: gnutls_malloc failed to allocate memory.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2339
+#: src/microhttpd/daemon.c:2364
 msgid "PSK authentication failed: PSK too long.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2401
+#: src/microhttpd/daemon.c:2427
 #, c-format
 msgid "Accepted connection on socket %d.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2414 src/microhttpd/daemon.c:2745
+#: src/microhttpd/daemon.c:2440 src/microhttpd/daemon.c:2761
 msgid "Server reached connection limit. Closing inbound connection.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2432
+#: src/microhttpd/daemon.c:2458
 msgid "Connection rejected by application. Closing connection.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2450 src/microhttpd/daemon.c:2478
-#: src/microhttpd/daemon.c:2718 src/microhttpd/daemon.c:4310
+#: src/microhttpd/daemon.c:2476 src/microhttpd/daemon.c:2503
+#: src/microhttpd/daemon.c:2745 src/microhttpd/daemon.c:4404
 #, c-format
 msgid "Error allocating memory: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2546
+#: src/microhttpd/daemon.c:2573
 msgid "Failed to initialise TLS session.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2572
+#: src/microhttpd/daemon.c:2599
 msgid "Failed to set ALPN protocols.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2600
+#: src/microhttpd/daemon.c:2627
 #, c-format
 msgid "Failed to setup TLS credentials: unknown credential type %d.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2610
+#: src/microhttpd/daemon.c:2637
 msgid "Unknown credential type.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2637
+#: src/microhttpd/daemon.c:2664
 msgid "TLS connection on non-TLS daemon.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2783
+#: src/microhttpd/daemon.c:2802 src/microhttpd/daemon.c:7180
+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:2808
 #, c-format
 msgid "Failed to create a thread: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2809 src/microhttpd/daemon.c:4821
-#: src/microhttpd/daemon.c:4854 src/microhttpd/daemon.c:6208
-#: src/microhttpd/daemon.c:6227 src/microhttpd/connection.c:3870
-#: src/microhttpd/response.c:1236 src/microhttpd/response.c:1262
+#: src/microhttpd/daemon.c:2840 src/microhttpd/daemon.c:4915
+#: src/microhttpd/daemon.c:4948 src/microhttpd/daemon.c:6321
+#: src/microhttpd/daemon.c:6340 src/microhttpd/connection.c:4865
+#: src/microhttpd/response.c:1787 src/microhttpd/response.c:1813
 #, c-format
 msgid "Call to epoll_ctl failed: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2920
+#: src/microhttpd/daemon.c:2960
 #, c-format
 msgid ""
 "New connection socket descriptor (%d) is not less than FD_SETSIZE (%d).\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2937
+#: src/microhttpd/daemon.c:2977
 msgid "Epoll mode supports only non-blocking sockets\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:2974
+#: src/microhttpd/daemon.c:3014
 msgid ""
 "Failed to signal new connection via inter-thread communication channel.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3019
+#: src/microhttpd/daemon.c:3059
 msgid "Failed to start serving new connection.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3092 src/microhttpd/daemon.c:3745
-#: src/microhttpd/daemon.c:7254 src/microhttpd/connection.c:759
-#: src/microhttpd/connection.c:778
+#: src/microhttpd/daemon.c:3133 src/microhttpd/daemon.c:3803
+#: src/microhttpd/daemon.c:7390 src/microhttpd/connection.c:899
+#: src/microhttpd/connection.c:918
 msgid "Failed to remove FD from epoll set.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3148
+#: src/microhttpd/daemon.c:3191
 msgid "Cannot suspend connections without enabling MHD_ALLOW_SUSPEND_RESUME!\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3155
+#: src/microhttpd/daemon.c:3198
 msgid "Error: connection scheduled for \"upgrade\" cannot be suspended.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3179
+#: src/microhttpd/daemon.c:3222
 msgid "Cannot resume connections without enabling MHD_ALLOW_SUSPEND_RESUME!\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3194
+#: src/microhttpd/daemon.c:3237
 msgid "Failed to signal resume via inter-thread communication channel.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3334
+#: src/microhttpd/daemon.c:3377
 msgid ""
 "Failed to signal resume of connection via inter-thread communication "
 "channel.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3388
+#: src/microhttpd/daemon.c:3431
 msgid ""
 "MHD_add_connection() has been called for daemon started without MHD_USE_ITC "
 "flag.\n"
@@ -313,628 +339,690 @@ msgid ""
 "already added sockets.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3399
+#: src/microhttpd/daemon.c:3442
 #, c-format
 msgid "Failed to set nonblocking mode on new client socket: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3418
+#: src/microhttpd/daemon.c:3461
 #, c-format
 msgid "Failed to suppress SIGPIPE on new client socket: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3444
+#: src/microhttpd/daemon.c:3487
 msgid "Failed to set noninheritable mode on new client socket.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3567
+#: src/microhttpd/daemon.c:3617
 #, c-format
 msgid "Error accepting connection: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3585
+#: src/microhttpd/daemon.c:3634
 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:3600
+#: src/microhttpd/daemon.c:3651
 #, 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:3613
+#: src/microhttpd/daemon.c:3665
 #, c-format
 msgid "Failed to set nonblocking mode on incoming connection socket: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3626
+#: src/microhttpd/daemon.c:3679
 msgid "Failed to set noninheritable mode on incoming connection socket.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3636
+#: src/microhttpd/daemon.c:3691
 #, c-format
 msgid "Failed to suppress SIGPIPE on incoming connection socket: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3657
+#: src/microhttpd/daemon.c:3713
 #, c-format
 msgid "Accepted connection on socket %d\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3702 src/microhttpd/daemon.c:7428
-#: src/microhttpd/daemon.c:7460 src/microhttpd/daemon.c:7493
-#: src/microhttpd/daemon.c:7599
+#: src/microhttpd/daemon.c:3758 src/microhttpd/daemon.c:7564
+#: src/microhttpd/daemon.c:7596 src/microhttpd/daemon.c:7629
+#: src/microhttpd/daemon.c:7735
 msgid "Failed to join a thread.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:3811
+#: src/microhttpd/daemon.c:3882
 msgid "Illegal call to MHD_get_timeout.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4039
+#: src/microhttpd/daemon.c:4133
 msgid ""
 "MHD_run_from_select() called with except_fd_set set to NULL. Such behavior "
 "is deprecated.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4120
+#: src/microhttpd/daemon.c:4214
 msgid "Could not obtain daemon fdsets.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4137
+#: src/microhttpd/daemon.c:4231
 msgid "Could not add listen socket to fdset.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4166
+#: src/microhttpd/daemon.c:4260
 msgid "Could not add control inter-thread communication channel FD to fdset.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4246
+#: src/microhttpd/daemon.c:4340
 #, c-format
 msgid "select failed: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4386 src/microhttpd/daemon.c:4540
+#: src/microhttpd/daemon.c:4480 src/microhttpd/daemon.c:4634
 #, c-format
 msgid "poll failed: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4683 src/microhttpd/daemon.c:4908
+#: src/microhttpd/daemon.c:4777 src/microhttpd/daemon.c:5002
 #, c-format
 msgid "Call to epoll_wait failed: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:4873 src/microhttpd/daemon.c:5410
+#: src/microhttpd/daemon.c:4967 src/microhttpd/daemon.c:5522
 msgid "Failed to remove listen FD from epoll set.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5255
+#: src/microhttpd/daemon.c:5367
 #, c-format
 msgid "Failed to block SIGPIPE on daemon thread: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5391
+#: src/microhttpd/daemon.c:5503
 msgid "Using MHD_quiesce_daemon in this mode requires MHD_USE_ITC.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5419
+#: src/microhttpd/daemon.c:5531
 msgid "Failed to signal quiesce via inter-thread communication channel.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5442
+#: src/microhttpd/daemon.c:5554
 msgid "failed to signal quiesce via inter-thread communication channel.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5559
-msgid "Warning: Too large timeout value, ignored.\n"
+#: src/microhttpd/daemon.c:5666 src/microhttpd/connection.c:5005
+#, c-format
+msgid ""
+"The specified connection timeout (%u) is too large. Maximum allowed value "
+"(%<PRIu64>) will be used instead.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5604
+#: src/microhttpd/daemon.c:5717
 msgid ""
 "Warning: Zero size, specified for thread pool size, is ignored. Thread pool "
 "is not used.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5613
+#: src/microhttpd/daemon.c:5726
 msgid ""
 "Warning: \"1\", specified for thread pool size, is ignored. Thread pool is "
 "not used.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5627
+#: src/microhttpd/daemon.c:5740
 #, c-format
 msgid "Specified thread pool size (%u) too big.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5639
+#: src/microhttpd/daemon.c:5752
 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:5648
+#: src/microhttpd/daemon.c:5761
 msgid ""
 "Both MHD_OPTION_THREAD_POOL_SIZE option and MHD_USE_THREAD_PER_CONNECTION "
 "flag are specified.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5666 src/microhttpd/daemon.c:5679
-#: src/microhttpd/daemon.c:5692 src/microhttpd/daemon.c:5705
-#: src/microhttpd/daemon.c:5757 src/microhttpd/daemon.c:5786
-#: src/microhttpd/daemon.c:5807 src/microhttpd/daemon.c:5829
-#: src/microhttpd/daemon.c:6097
+#: src/microhttpd/daemon.c:5779 src/microhttpd/daemon.c:5792
+#: src/microhttpd/daemon.c:5805 src/microhttpd/daemon.c:5818
+#: src/microhttpd/daemon.c:5870 src/microhttpd/daemon.c:5899
+#: src/microhttpd/daemon.c:5920 src/microhttpd/daemon.c:5942
+#: src/microhttpd/daemon.c:6210
 #, c-format
 msgid "MHD HTTPS option %d passed to MHD but MHD_USE_TLS not set.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5725
+#: src/microhttpd/daemon.c:5838
 msgid "Error initializing DH parameters.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5735
+#: src/microhttpd/daemon.c:5848
 msgid "Diffie-Hellman parameters string too long.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5746
+#: src/microhttpd/daemon.c:5859
 msgid "Bad Diffie-Hellman parameters format.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5774
+#: src/microhttpd/daemon.c:5887
 #, c-format
 msgid "Setting priorities to `%s' failed: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5795
+#: src/microhttpd/daemon.c:5908
 msgid ""
 "MHD_OPTION_HTTPS_CERT_CALLBACK requires building MHD with GnuTLS >= 3.0.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5817
+#: src/microhttpd/daemon.c:5930
 msgid ""
 "MHD_OPTION_HTTPS_CERT_CALLBACK2 requires building MHD with GnuTLS >= 3.6.3.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5852
+#: src/microhttpd/daemon.c:5965
 msgid ""
 "MHD_OPTION_LISTEN_SOCKET specified for daemon with MHD_USE_NO_LISTEN_SOCKET "
 "flag set.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5890
+#: src/microhttpd/daemon.c:6003
 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:5915
+#: src/microhttpd/daemon.c:6028
 msgid "TCP fastopen is not supported on this platform.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:5934
+#: src/microhttpd/daemon.c:6047
 msgid ""
 "Flag MHD_USE_PEDANTIC_CHECKS is ignored because another behavior is "
 "specified by MHD_OPTION_STRICT_CLIENT.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6072
+#: src/microhttpd/daemon.c:6185
 #, c-format
 msgid "MHD HTTPS option %d passed to MHD compiled without GNUtls >= 3.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6111
+#: src/microhttpd/daemon.c:6224
 #, c-format
 msgid "MHD HTTPS option %d passed to MHD compiled without HTTPS support.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6118
+#: src/microhttpd/daemon.c:6231
 #, c-format
 msgid "Invalid option %d! (Did you terminate the list with MHD_OPTION_END?).\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6148
+#: src/microhttpd/daemon.c:6261
 #, c-format
 msgid "Call to epoll_create1 failed: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6158
+#: src/microhttpd/daemon.c:6271
 msgid "Failed to set noninheritable mode on epoll FD.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6465
+#: src/microhttpd/daemon.c:6578
 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:6478
+#: src/microhttpd/daemon.c:6591
 msgid "Using debug build of libmicrohttpd.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6492
+#: src/microhttpd/daemon.c:6605
 #, c-format
 msgid "Failed to create inter-thread communication channel: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6509
+#: src/microhttpd/daemon.c:6622
 msgid ""
 "file descriptor for inter-thread communication channel exceeds maximum "
 "value.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6529
+#: src/microhttpd/daemon.c:6642
 msgid "Specified value for NC_SIZE too large.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6543
+#: src/microhttpd/daemon.c:6656
 #, c-format
 msgid "Failed to allocate memory for nonce-nc map: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6560
+#: src/microhttpd/daemon.c:6673
 msgid "MHD failed to initialize nonce-nc mutex.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6581
+#: src/microhttpd/daemon.c:6694
 msgid "MHD thread polling only works with MHD_USE_INTERNAL_POLLING_THREAD.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6605
+#: src/microhttpd/daemon.c:6718
 #, c-format
 msgid "Failed to create socket for listening: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6626 src/microhttpd/daemon.c:6645
-#: src/microhttpd/daemon.c:6668 src/microhttpd/daemon.c:6706
-#: src/microhttpd/daemon.c:6783 src/microhttpd/daemon.c:6814
+#: src/microhttpd/daemon.c:6739 src/microhttpd/daemon.c:6758
+#: src/microhttpd/daemon.c:6781 src/microhttpd/daemon.c:6819
+#: src/microhttpd/daemon.c:6896 src/microhttpd/daemon.c:6927
 #, c-format
 msgid "setsockopt failed: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6679
+#: src/microhttpd/daemon.c:6792
 msgid "Cannot allow listening address reuse: SO_REUSEPORT not defined.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6715
+#: src/microhttpd/daemon.c:6828
 msgid ""
 "Cannot disallow listening address reuse: SO_EXCLUSIVEADDRUSE not defined.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6794
+#: src/microhttpd/daemon.c:6907
 #, c-format
 msgid "Failed to bind to port %u: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6825
+#: src/microhttpd/daemon.c:6938
 #, c-format
 msgid "Failed to listen for connections: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6856
+#: src/microhttpd/daemon.c:6969
 #, c-format
 msgid "Failed to get listen port number: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6867
+#: src/microhttpd/daemon.c:6980
 msgid ""
 "Failed to get listen port number (`struct sockaddr_storage` too small!?).\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6908
+#: src/microhttpd/daemon.c:7021
 msgid "Unknown address family!\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6921
+#: src/microhttpd/daemon.c:7036
 #, c-format
 msgid "Failed to set nonblocking mode on listening socket: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6944
+#: src/microhttpd/daemon.c:7061
 #, c-format
 msgid "Listen socket descriptor (%d) is not less than FD_SETSIZE (%d).\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6965
+#: src/microhttpd/daemon.c:7085
 msgid ""
 "Combining MHD_USE_THREAD_PER_CONNECTION and MHD_USE_EPOLL is not supported.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:6979 src/microhttpd/daemon.c:6989
+#: src/microhttpd/daemon.c:7099 src/microhttpd/daemon.c:7109
 msgid "MHD failed to initialize IP connection limit mutex.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7007
+#: src/microhttpd/daemon.c:7127
 msgid "Failed to initialize TLS support.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7040 src/microhttpd/daemon.c:7105
-#: src/microhttpd/daemon.c:7204
+#: src/microhttpd/daemon.c:7160 src/microhttpd/daemon.c:7233
+#: src/microhttpd/daemon.c:7340
 msgid "Failed to initialise mutex.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7058
+#: src/microhttpd/daemon.c:7186
 #, c-format
 msgid "Failed to create listen thread: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7116
+#: src/microhttpd/daemon.c:7244
 #, c-format
 msgid "Failed to create worker inter-thread communication channel: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7129
+#: src/microhttpd/daemon.c:7257
 msgid ""
 "File descriptor for worker inter-thread communication channel exceeds "
 "maximum value.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7167
+#: src/microhttpd/daemon.c:7295
 msgid "MHD failed to initialize cleanup connection mutex.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7184
+#: src/microhttpd/daemon.c:7314
+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:7320
 #, c-format
 msgid "Failed to create pool thread: %s\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7373 src/microhttpd/daemon.c:7406
+#: src/microhttpd/daemon.c:7509 src/microhttpd/daemon.c:7542
 msgid "MHD_stop_daemon() called while we have suspended connections.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7445 src/microhttpd/daemon.c:7543
-#: src/microhttpd/daemon.c:7581
+#: src/microhttpd/daemon.c:7581 src/microhttpd/daemon.c:7679
+#: src/microhttpd/daemon.c:7717
 msgid "Failed to signal shutdown via inter-thread communication channel.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:7518
+#: src/microhttpd/daemon.c:7654
 msgid "MHD_stop_daemon() was called twice."
 msgstr ""
 
-#: src/microhttpd/daemon.c:8031
+#: src/microhttpd/daemon.c:8167
 msgid "Failed to initialize winsock.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:8034
+#: src/microhttpd/daemon.c:8170
 msgid "Winsock version 2.2 is not available.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:8042 src/microhttpd/daemon.c:8046
+#: src/microhttpd/daemon.c:8178 src/microhttpd/daemon.c:8182
 msgid "Failed to initialise multithreading in libgcrypt.\n"
 msgstr ""
 
-#: src/microhttpd/daemon.c:8052
+#: src/microhttpd/daemon.c:8188
 msgid "libgcrypt is too old. MHD was compiled for libgcrypt 1.6.0 or newer.\n"
 msgstr ""
 
-#: src/microhttpd/mhd_sockets.h:333
+#: src/microhttpd/mhd_sockets.h:345
 msgid "Close socket failed.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:140
+#: src/microhttpd/connection.c:206
 msgid "The operation would block, retry later"
 msgstr ""
 
-#: src/microhttpd/connection.c:142
+#: src/microhttpd/connection.c:208
 msgid "The connection was forcibly closed by remote peer"
 msgstr ""
 
-#: src/microhttpd/connection.c:144
+#: src/microhttpd/connection.c:210
 msgid "The socket is not connected"
 msgstr ""
 
-#: src/microhttpd/connection.c:146
+#: src/microhttpd/connection.c:212
 msgid "Not enough system resources to serve the request"
 msgstr ""
 
-#: src/microhttpd/connection.c:148
+#: src/microhttpd/connection.c:214
 msgid "Bad FD value"
 msgstr ""
 
-#: src/microhttpd/connection.c:150
+#: src/microhttpd/connection.c:216
 msgid "Argument value is invalid"
 msgstr ""
 
-#: src/microhttpd/connection.c:152
+#: src/microhttpd/connection.c:218
 msgid "Argument value is not supported"
 msgstr ""
 
-#: src/microhttpd/connection.c:154
+#: src/microhttpd/connection.c:220
 msgid "The socket is no longer available for sending"
 msgstr ""
 
-#: src/microhttpd/connection.c:156
+#: src/microhttpd/connection.c:222
 msgid "TLS encryption or decryption error"
 msgstr ""
 
-#: src/microhttpd/connection.c:161
+#: src/microhttpd/connection.c:227
 msgid "Not an error code"
 msgstr ""
 
-#: src/microhttpd/connection.c:164
+#: src/microhttpd/connection.c:230
 msgid "Wrong error code value"
 msgstr ""
 
-#: src/microhttpd/connection.c:868 src/microhttpd/connection.c:962
+#: src/microhttpd/connection.c:1047 src/microhttpd/connection.c:1157
 msgid "Closing connection (out of memory)."
 msgstr ""
 
-#: src/microhttpd/connection.c:913
+#: src/microhttpd/connection.c:1094
 msgid "Closing connection (application reported error generating data)."
 msgstr ""
 
-#: src/microhttpd/connection.c:1010
+#: src/microhttpd/connection.c:1212
+msgid "No callback for the chunked data."
+msgstr ""
+
+#: src/microhttpd/connection.c:1230
 msgid "Closing connection (application error generating response)."
 msgstr ""
 
-#: src/microhttpd/connection.c:1653
+#: src/microhttpd/connection.c:1254
+msgid "Closing connection (application returned more data than requested)."
+msgstr ""
+
+#: src/microhttpd/connection.c:2292
 #, c-format
 msgid ""
-"Error processing request (HTTP response code is %u (`%s')). Closing "
+"Error processing request (HTTP response code is %u ('%s')). Closing "
 "connection.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:1680 src/microhttpd/connection.c:2722
-msgid "Closing connection (failed to queue response)."
+#: src/microhttpd/connection.c:2301
+msgid "Too late to send an error response, response is being sent already.\n"
+msgstr ""
+
+#: src/microhttpd/connection.c:2307
+msgid "Too late for error response."
 msgstr ""
 
-#: src/microhttpd/connection.c:1691 src/microhttpd/connection.c:3708
-msgid "Closing connection (failed to create response header)."
+#: src/microhttpd/connection.c:2335
+msgid "Failed to create error response.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:1737 src/microhttpd/connection.c:2888
-#: src/microhttpd/connection.c:2956 src/microhttpd/connection.c:3372
+#: src/microhttpd/connection.c:2351
+msgid "Closing connection (failed to queue error response)."
+msgstr ""
+
+#: src/microhttpd/connection.c:2383
+msgid "Closing connection (failed to create error response header)."
+msgstr ""
+
+#: src/microhttpd/connection.c:2435 src/microhttpd/connection.c:3795
+#: src/microhttpd/connection.c:3872 src/microhttpd/connection.c:4385
 #, c-format
 msgid "In function %s handling connection at state: %s\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:1955
+#: src/microhttpd/connection.c:2678
 msgid "Not enough memory in pool to allocate header record!\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2002
+#: src/microhttpd/connection.c:2724
 msgid "Not enough memory in pool to parse cookies!\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2233 src/microhttpd/connection.c:2437
+#: src/microhttpd/connection.c:3083 src/microhttpd/connection.c:3322
 msgid "Application reported internal error, closing connection."
 msgstr ""
 
-#: src/microhttpd/connection.c:2302 src/microhttpd/connection.c:2381
-msgid ""
-"Received malformed HTTP request (bad chunked encoding). Closing connection."
-msgstr ""
-
-#: src/microhttpd/connection.c:2445
+#: src/microhttpd/connection.c:3331
 msgid "libmicrohttpd API violation.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2461
+#: src/microhttpd/connection.c:3346
 msgid ""
 "WARNING: incomplete upload processing and connection not suspended may "
 "result in hung connection.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2535
-msgid "Received malformed line (no colon). Closing connection."
-msgstr ""
-
-#: src/microhttpd/connection.c:2698
-msgid "Received HTTP 1.1 request without `Host' header.\n"
+#: src/microhttpd/connection.c:3573
+msgid "Received HTTP/1.1 request without `Host' header.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2710
-msgid "Closing connection (failed to create response)."
+#: src/microhttpd/connection.c:3620
+msgid "Too large value of 'Content-Length' header. Closing connection.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2760
+#: src/microhttpd/connection.c:3631
 msgid "Failed to parse `Content-Length' header. Closing connection.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2861
-msgid "Socket disconnected while reading request."
+#: src/microhttpd/connection.c:3744
+msgid "Socket has been disconnected when reading request.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2868
+#: src/microhttpd/connection.c:3756
 #, c-format
 msgid "Connection socket is closed when reading request due to the error: %s\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2983
+#: src/microhttpd/connection.c:3774
+msgid "Connection was closed by remote side with incomplete request.\n"
+msgstr ""
+
+#: src/microhttpd/connection.c:3900
 #, c-format
 msgid "Failed to send data in request for %s.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:2992
+#: src/microhttpd/connection.c:3909
 #, c-format
 msgid "Sent 100 continue response: `%.*s'\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3063
+#: src/microhttpd/connection.c:3986
 #, c-format
 msgid ""
 "Failed to send the response headers for the request for `%s'. Error: %s\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3128
+#: src/microhttpd/connection.c:4052
 msgid "Data offset exceeds limit.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3138
+#: src/microhttpd/connection.c:4062
 #, c-format
 msgid "Sent %d-byte DATA response: `%.*s'\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3155
+#: src/microhttpd/connection.c:4079
 #, c-format
 msgid "Failed to send the response body for the request for `%s'. Error: %s\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3187
+#: src/microhttpd/connection.c:4111
 #, c-format
 msgid ""
 "Failed to send the chunked response body for the request for `%s'. Error: "
 "%s\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3223
+#: src/microhttpd/connection.c:4147
 #, c-format
 msgid "Failed to send the footers for the request for `%s'. Error: %s\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3252
+#: src/microhttpd/connection.c:4176
 msgid "Internal error.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3330
+#: src/microhttpd/connection.c:4254
 msgid ""
 "Failed to signal end of connection via inter-thread communication channel.\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:3599
+#: src/microhttpd/connection.c:4636
 msgid "Closing connection (failed to create response header).\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:4060
+#: src/microhttpd/connection.c:4755
+msgid "Closing connection (failed to create response footer)."
+msgstr ""
+
+#: src/microhttpd/connection.c:5074
 msgid "Attempted to queue response on wrong thread!\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:4072
+#: src/microhttpd/connection.c:5097
 msgid ""
 "Attempted 'upgrade' connection on daemon without MHD_ALLOW_UPGRADE option!\n"
 msgstr ""
 
-#: src/microhttpd/connection.c:4082
+#: src/microhttpd/connection.c:5106
 msgid "Application used invalid status code for 'upgrade' response!\n"
 msgstr ""
 
-#: src/microhttpd/response.c:1096
+#: src/microhttpd/connection.c:5115
+msgid "Application used invalid response without \"Connection\" header!\n"
+msgstr ""
+
+#: src/microhttpd/connection.c:5129
+msgid ""
+"Application used invalid response without \"upgrade\" token in \"Connection"
+"\" header!\n"
+msgstr ""
+
+#: src/microhttpd/connection.c:5139
+msgid "Connection \"Upgrade\" can be used with HTTP/1.1 connections!\n"
+msgstr ""
+
+#: src/microhttpd/connection.c:5151
+#, c-format
+msgid ""
+"Refused wrong status code (%u). HTTP requires three digits status code!\n"
+msgstr ""
+
+#: src/microhttpd/connection.c:5163
+#, c-format
+msgid ""
+"Wrong status code (%u) refused. HTTP/1.0 clients do not support 1xx status "
+"codes!\n"
+msgstr ""
+
+#: src/microhttpd/connection.c:5174
+#, c-format
+msgid ""
+"Wrong status code (%u) refused. HTTP/1.0 reply mode does not support 1xx "
+"status codes!\n"
+msgstr ""
+
+#: src/microhttpd/response.c:1646
 msgid ""
 "Invalid response for upgrade: application failed to set the 'Upgrade' "
 "header!\n"
 msgstr ""
 
-#: src/microhttpd/response.c:1139
+#: src/microhttpd/response.c:1690
 msgid "Failed to make loopback sockets non-blocking.\n"
 msgstr ""
 
-#: src/microhttpd/response.c:1158
+#: src/microhttpd/response.c:1709
 msgid "Failed to set SO_NOSIGPIPE on loopback sockets.\n"
 msgstr ""
 
-#: src/microhttpd/response.c:1178
+#: src/microhttpd/response.c:1729
 #, c-format
 msgid "Socketpair descriptor larger than FD_SETSIZE: %d > %d\n"
 msgstr ""
 
-#: src/microhttpd/response.c:1259
+#: src/microhttpd/response.c:1810
 msgid "Error cleaning up while handling epoll error.\n"
 msgstr ""
 
-#: src/microhttpd/mhd_itc.h:355
+#: src/microhttpd/mhd_itc.h:357
 msgid "Failed to destroy ITC.\n"
 msgstr ""
 
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h
index a6032d8b..1d62f2cc 100644
--- a/src/include/microhttpd.h
+++ b/src/include/microhttpd.h
@@ -96,7 +96,7 @@ extern "C"
  * they are parsed as decimal numbers.
  * Example: 0x01093001 = 1.9.30-1.
  */
-#define MHD_VERSION 0x00097314
+#define MHD_VERSION 0x00097400
 
 /* If generic headers don't work on your platform, include headers
    which define 'va_list', 'size_t', 'ssize_t', 'intptr_t',
@@ -339,7 +339,7 @@ _MHD_DEPR_MACRO ( \
  * @defgroup httpcode HTTP response codes.
  * These are the status codes defined for HTTP responses.
  * See: 
https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
- * Registry export date: 2021-10-30
+ * Registry export date: 2021-12-19
  * @{
  */
 
@@ -490,7 +490,6 @@ _MHD_DEPR_MACRO ( \
 /* 509 "Bandwidth Limit Exceeded". Apache extension. */
 #define MHD_HTTP_BANDWIDTH_LIMIT_EXCEEDED    509
 
-
 /* Deprecated names and codes */
 /** @deprecated */
 #define MHD_HTTP_METHOD_NOT_ACCEPTABLE \
@@ -574,7 +573,7 @@ MHD_get_reason_phrase_len_for (unsigned int code);
  * @defgroup headers HTTP headers
  * These are the standard headers found in HTTP requests and responses.
  * See: https://www.iana.org/assignments/http-fields/http-fields.xhtml
- * Registry export date: 2021-10-30
+ * Registry export date: 2021-12-19
  * @{
  */
 
@@ -701,6 +700,29 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_ACCEPT_FEATURES "Accept-Features"
 /* Permanent.     https://www.w3.org/TR/ldp/ */
 #define MHD_HTTP_HEADER_ACCEPT_POST  "Accept-Post"
+/* Permanent.     
https://fetch.spec.whatwg.org/#http-access-control-allow-credentials */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS \
+  "Access-Control-Allow-Credentials"
+/* Permanent.     
https://fetch.spec.whatwg.org/#http-access-control-allow-headers */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_HEADERS \
+  "Access-Control-Allow-Headers"
+/* Permanent.     
https://fetch.spec.whatwg.org/#http-access-control-allow-methods */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_METHODS \
+  "Access-Control-Allow-Methods"
+/* Permanent.     
https://fetch.spec.whatwg.org/#http-access-control-allow-origin */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN \
+  "Access-Control-Allow-Origin"
+/* Permanent.     
https://fetch.spec.whatwg.org/#http-access-control-expose-headers */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS \
+  "Access-Control-Expose-Headers"
+/* Permanent.     https://fetch.spec.whatwg.org/#http-access-control-max-age */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_MAX_AGE "Access-Control-Max-Age"
+/* Permanent.     
https://fetch.spec.whatwg.org/#http-access-control-request-headers */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_HEADERS \
+  "Access-Control-Request-Headers"
+/* Permanent.     
https://fetch.spec.whatwg.org/#http-access-control-request-method */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_METHOD \
+  "Access-Control-Request-Method"
 /* Permanent.     RFC7639, Section 2 */
 #define MHD_HTTP_HEADER_ALPN         "ALPN"
 /* Permanent.     RFC7838 */
@@ -737,12 +759,28 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_CONTENT_ID   "Content-ID"
 /* Permanent.     RFC4229 */
 #define MHD_HTTP_HEADER_CONTENT_SCRIPT_TYPE "Content-Script-Type"
+/* Permanent.     https://www.w3.org/TR/CSP/#csp-header */
+#define MHD_HTTP_HEADER_CONTENT_SECURITY_POLICY "Content-Security-Policy"
+/* Permanent.     https://www.w3.org/TR/CSP/#cspro-header */
+#define MHD_HTTP_HEADER_CONTENT_SECURITY_POLICY_REPORT_ONLY \
+  "Content-Security-Policy-Report-Only"
 /* Permanent.     RFC4229 */
 #define MHD_HTTP_HEADER_CONTENT_STYLE_TYPE "Content-Style-Type"
 /* Permanent.     RFC4229 */
 #define MHD_HTTP_HEADER_CONTENT_VERSION "Content-Version"
 /* Permanent.     RFC6265 */
 #define MHD_HTTP_HEADER_COOKIE       "Cookie"
+/* Permanent.     
https://html.spec.whatwg.org/multipage/origin.html#cross-origin-embedder-policy 
*/
+#define MHD_HTTP_HEADER_CROSS_ORIGIN_EMBEDDER_POLICY \
+  "Cross-Origin-Embedder-Policy"
+/* Permanent.     
https://html.spec.whatwg.org/multipage/origin.html#cross-origin-embedder-policy-report-only
 */
+#define MHD_HTTP_HEADER_CROSS_ORIGIN_EMBEDDER_POLICY_REPORT_ONLY \
+  "Cross-Origin-Embedder-Policy-Report-Only"
+/* Permanent.     
https://html.spec.whatwg.org/multipage/origin.html#cross-origin-opener-policy-2 
*/
+#define MHD_HTTP_HEADER_CROSS_ORIGIN_OPENER_POLICY "Cross-Origin-Opener-Policy"
+/* Permanent.     
https://html.spec.whatwg.org/multipage/origin.html#cross-origin-opener-policy-report-only
 */
+#define MHD_HTTP_HEADER_CROSS_ORIGIN_OPENER_POLICY_REPORT_ONLY \
+  "Cross-Origin-Opener-Policy-Report-Only"
 /* Permanent.     
https://fetch.spec.whatwg.org/#cross-origin-resource-policy-header */
 #define MHD_HTTP_HEADER_CROSS_ORIGIN_RESOURCE_POLICY \
   "Cross-Origin-Resource-Policy"
@@ -789,6 +827,8 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_KEEP_ALIVE   "Keep-Alive"
 /* Permanent.     RFC4229 */
 #define MHD_HTTP_HEADER_LABEL        "Label"
+/* Permanent.     
https://html.spec.whatwg.org/multipage/server-sent-events.html#last-event-id */
+#define MHD_HTTP_HEADER_LAST_EVENT_ID "Last-Event-ID"
 /* Permanent.     RFC8288 */
 #define MHD_HTTP_HEADER_LINK         "Link"
 /* Permanent.     RFC4918 */
@@ -817,8 +857,12 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_ORDERING_TYPE "Ordering-Type"
 /* Permanent.     RFC6454 */
 #define MHD_HTTP_HEADER_ORIGIN       "Origin"
+/* Permanent.     
https://html.spec.whatwg.org/multipage/origin.html#origin-agent-cluster */
+#define MHD_HTTP_HEADER_ORIGIN_AGENT_CLUSTER "Origin-Agent-Cluster"
 /* Permanent.     RFC8613, Section 11.1 */
 #define MHD_HTTP_HEADER_OSCORE       "OSCORE"
+/* Permanent.     OASIS Project Specification 01; OASIS; Chet_Ensign */
+#define MHD_HTTP_HEADER_OSLC_CORE_VERSION "OSLC-Core-Version"
 /* Permanent.     RFC4918 */
 #define MHD_HTTP_HEADER_OVERWRITE    "Overwrite"
 /* Permanent.     RFC4229 */
@@ -829,6 +873,10 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_PEP_INFO     "Pep-Info"
 /* Permanent.     RFC4229 */
 #define MHD_HTTP_HEADER_PICS_LABEL   "PICS-Label"
+/* Permanent.     https://html.spec.whatwg.org/multipage/links.html#ping-from 
*/
+#define MHD_HTTP_HEADER_PING_FROM    "Ping-From"
+/* Permanent.     https://html.spec.whatwg.org/multipage/links.html#ping-to */
+#define MHD_HTTP_HEADER_PING_TO      "Ping-To"
 /* Permanent.     RFC4229 */
 #define MHD_HTTP_HEADER_POSITION     "Position"
 /* Permanent.     RFC7240 */
@@ -854,6 +902,8 @@ MHD_get_reason_phrase_len_for (unsigned int code);
   "Public-Key-Pins-Report-Only"
 /* Permanent.     RFC4437 */
 #define MHD_HTTP_HEADER_REDIRECT_REF "Redirect-Ref"
+/* Permanent.     
https://html.spec.whatwg.org/multipage/browsing-the-web.html#refresh */
+#define MHD_HTTP_HEADER_REFRESH      "Refresh"
 /* Permanent.     RFC8555, Section 6.5.1 */
 #define MHD_HTTP_HEADER_REPLAY_NONCE "Replay-Nonce"
 /* Permanent.     RFC4229 */
@@ -876,6 +926,8 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_VERSION "Sec-WebSocket-Version"
 /* Permanent.     RFC4229 */
 #define MHD_HTTP_HEADER_SECURITY_SCHEME "Security-Scheme"
+/* Permanent.     https://www.w3.org/TR/server-timing/ */
+#define MHD_HTTP_HEADER_SERVER_TIMING "Server-Timing"
 /* Permanent.     RFC6265 */
 #define MHD_HTTP_HEADER_SET_COOKIE   "Set-Cookie"
 /* Permanent.     RFC4229 */
@@ -912,34 +964,16 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_WANT_DIGEST  "Want-Digest"
 /* Permanent.     https://fetch.spec.whatwg.org/#x-content-type-options-header 
*/
 #define MHD_HTTP_HEADER_X_CONTENT_TYPE_OPTIONS "X-Content-Type-Options"
-/* Permanent.     RFC7034 */
+/* Permanent.     
https://html.spec.whatwg.org/multipage/browsing-the-web.html#x-frame-options */
 #define MHD_HTTP_HEADER_X_FRAME_OPTIONS "X-Frame-Options"
 /* Provisional.   RFC5789 */
 #define MHD_HTTP_HEADER_ACCEPT_PATCH "Accept-Patch"
-/* Provisional.   W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS \
-  "Access-Control-Allow-Credentials"
-/* Provisional.   W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_HEADERS \
-  "Access-Control-Allow-Headers"
-/* Provisional.   W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_METHODS \
-  "Access-Control-Allow-Methods"
-/* Provisional.   W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN \
-  "Access-Control-Allow-Origin"
-/* Provisional.   W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL_MAX_AGE "Access-Control-Max-Age"
-/* Provisional.   W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_HEADERS \
-  "Access-Control-Request-Headers"
-/* Provisional.   W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_METHOD \
-  "Access-Control-Request-Method"
 /* Provisional.   
https://github.com/ampproject/amphtml/blob/master/spec/amp-cache-transform.md */
 #define MHD_HTTP_HEADER_AMP_CACHE_TRANSFORM "AMP-Cache-Transform"
 /* Provisional.   RFC4229 */
 #define MHD_HTTP_HEADER_COMPLIANCE   "Compliance"
+/* Provisional.   
https://docs.oasis-open-projects.org/oslc-op/config/v1.0/psd01/config-resources.html#configcontext
 */
+#define MHD_HTTP_HEADER_CONFIGURATION_CONTEXT "Configuration-Context"
 /* Provisional.   RFC4229 */
 #define MHD_HTTP_HEADER_CONTENT_TRANSFER_ENCODING "Content-Transfer-Encoding"
 /* Provisional.   RFC4229 */
@@ -954,8 +988,6 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_NON_COMPLIANCE "Non-Compliance"
 /* Provisional.   RFC4229 */
 #define MHD_HTTP_HEADER_OPTIONAL     "Optional"
-/* Provisional.   OASIS Project Specification 01; OASIS; Chet_Ensign */
-#define MHD_HTTP_HEADER_OSLC_CORE_VERSION "OSLC-Core-Version"
 /* Provisional.   Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
 #define MHD_HTTP_HEADER_REPEATABILITY_CLIENT_ID "Repeatability-Client-ID"
 /* Provisional.   Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
@@ -1002,26 +1034,26 @@ MHD_get_reason_phrase_len_for (unsigned int code);
 #define MHD_HTTP_HEADER_X_DEVICE_ACCEPT_LANGUAGE "X-Device-Accept-Language"
 /* Provisional.   W3C Mobile Web Best Practices Working Group */
 #define MHD_HTTP_HEADER_X_DEVICE_USER_AGENT "X-Device-User-Agent"
-/* Deprecated.    W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_ACCESS_CONTROL "Access-Control"
 /* Deprecated.    RFC4229 */
 #define MHD_HTTP_HEADER_C_PEP_INFO   "C-PEP-Info"
-/* Deprecated.    W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_METHOD_CHECK "Method-Check"
-/* Deprecated.    W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_METHOD_CHECK_EXPIRES "Method-Check-Expires"
 /* Deprecated.    RFC4229 */
 #define MHD_HTTP_HEADER_PROTOCOL_INFO "Protocol-Info"
 /* Deprecated.    RFC4229 */
 #define MHD_HTTP_HEADER_PROTOCOL_QUERY "Protocol-Query"
-/* Deprecated.    W3C Web Application Formats Working Group */
-#define MHD_HTTP_HEADER_REFERER_ROOT "Referer-Root"
+/* Obsoleted.     
https://www.w3.org/TR/2007/WD-access-control-20071126/#access-control0 */
+#define MHD_HTTP_HEADER_ACCESS_CONTROL "Access-Control"
 /* Obsoleted.     RFC2068; RFC2616 */
 #define MHD_HTTP_HEADER_CONTENT_BASE "Content-Base"
 /* Obsoleted.     RFC2616, Section 14.15; RFC7231, Appendix B */
 #define MHD_HTTP_HEADER_CONTENT_MD5  "Content-MD5"
 /* Obsoleted.     RFC2965; RFC6265 */
 #define MHD_HTTP_HEADER_COOKIE2      "Cookie2"
+/* Obsoleted.     
https://www.w3.org/TR/2007/WD-access-control-20071126/#method-check */
+#define MHD_HTTP_HEADER_METHOD_CHECK "Method-Check"
+/* Obsoleted.     
https://www.w3.org/TR/2007/WD-access-control-20071126/#method-check-expires */
+#define MHD_HTTP_HEADER_METHOD_CHECK_EXPIRES "Method-Check-Expires"
+/* Obsoleted.     
https://www.w3.org/TR/2007/WD-access-control-20071126/#referer-root */
+#define MHD_HTTP_HEADER_REFERER_ROOT "Referer-Root"
 /* Obsoleted.     RFC2965; RFC6265 */
 #define MHD_HTTP_HEADER_SET_COOKIE2  "Set-Cookie2"
 
@@ -1045,7 +1077,7 @@ MHD_get_reason_phrase_len_for (unsigned int code);
  * @defgroup methods HTTP methods
  * HTTP methods (as strings).
  * See: http://www.iana.org/assignments/http-methods/http-methods.xml
- * Registry export date: 2021-10-30
+ * Registry export date: 2021-12-19
  * @{
  */
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]