libmicrohttpd

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

ChangeLog (158909B)


      1 Fri Aug  7 10:15:01 PM CEST 2026
      2     Fix race in thread-per-connection mode on wake-up signal
      3     between daemon and thread that could result in lost wake-ups
      4     and thus connections that did not finish processing.
      5     Fix rare assertion failure in relation to suspend-and-resume
      6     processing (harmless if assertions were turned off).
      7     Releasing GNU libmicrohttpd 1.0.10. -CG
      8 
      9 Thu Jul 30 05:32:00 PM CEST 2026
     10     Enfocing a minimal size on the PSK.
     11     Fix support for red zones in memorypool.
     12     Fix rare over-writing of HTTP version string with network data
     13     after parsing header.
     14     Fix rare crash from adding connection manually followed by
     15     immediate daemon shutdown.
     16     Releasing GNU libmicrohttpd 1.0.9. -CG
     17 
     18 Tue Jul 28 06:12:03 PM CEST 2026
     19     Fixing additional vulnerabilities inspired by reviewing the
     20     code for similar issues like the ones reported by A. Ramos;
     21     expand the test suite to cover these and other issues.
     22     Releasing GNU libmicrohttpd 1.0.8. -CG
     23 
     24 Mon Jul 27 06:12:03 PM CEST 2026
     25     Fixing various vulnerabilities reported by A. Ramos resulting
     26     in possible crashes or out-of-bounds stack writes for certain
     27     requests in specific configurations.
     28     Releasing GNU libmicrohttpd 1.0.7. -CG
     29 
     30 Wed Jul  8 12:32:30 PM CEST 2026
     31     Fix various minor issues, like theoretical
     32     integer overflows for extreme inputs or NULL
     33     dereferences if the application passes NULL
     34     where it should not.
     35     Releasing GNU libmicrohttpd 1.0.6. -CG
     36 
     37 Thu Apr 16 10:36:54 AM CEST 2026
     38     Also ensuring other HTTP client headers that
     39     should be unique are unique.
     40     Releasing GNU libmicrohttpd 1.0.5. -EG/CG
     41 
     42 Mon Apr 13 11:39:04 AM CEST 2026
     43     Fixed bug where additional "Content-Length" headers were
     44     ignored instead of rejecting the request, fixing a
     45     (minor) header smuggling vulnerability discovered
     46     by SySS GmbH.
     47     Releasing GNU libmicrohttpd 1.0.4. -CG
     48 
     49 Thu Apr  2 12:13:57 AM CEST 2026
     50     Fixed bug in connection list traversal logic that could
     51     cause ready connections to be skipped (possibly indefinitely)
     52     if another connection was being suspended.
     53     Releasing GNU libmicrohttpd 1.0.3. -CG
     54 
     55 Sat Feb 28 23:38:39 CET 2026
     56     Added MHD_OPTION_ALLOW_BIN_ZERO_IN_URI_PATH daemon option.
     57     Added new function MHD_get_connection_URI_path_n().  -EG
     58 
     59 Mon Jul 14 05:03:07 PM CEST 2025
     60     Fix double-close bugs on bind() errors reported by MC on the list.
     61     Removed MHD2 draft code, now in libmicrohttpd2.git.
     62     Releasing GNU libmicrohttpd 1.0.2 -CG
     63 
     64 Fri 23 Feb 2024 21:00:00 UZT
     65     Releasing GNU libmicrohttpd 1.0.1 -EG
     66 
     67 February 2024
     68     Fixed builds without messages. -JP & CG
     69     Fixed builds with external MD5 calculation.
     70     Fixed SHA-512/256 code for hypothetical extra large sizes.
     71     Fixed response handling during daemon shutdown.
     72     Fixed code logic for builds without messages.
     73     Reduced the binary size for builds without messages by removing
     74     the strings with filenames used for panic reports.
     75     Fixed tests and examples for builds without messages and for builds
     76     without basic auth.
     77     Fixed some compiler warnings. -EG
     78 
     79 Thu 01 Feb 2024 15:00:00 CET
     80     Releasing GNU libmicrohttpd 1.0.0 -EG
     81 
     82 January 2024
     83     add missing lock, do not call 'close(-1)' on very rare error path.
     84     use correct HTTP header (content type, not content encoding) for mime type
     85     in examples.
     86     fix memory leak on error path. -CG
     87     MHD_OPTION_CONNECTION_MEMORY_{LIMIT,INCREMENT}: added ignore of zero value.
     88     test_upgrade{,_large}{,_tls}: unified code, removed workarounds, added new
     89     test.
     90     digest_auth_example_adv: added new advanced example for the new Digest
     91     Auth API use.
     92     Fixed compiler warnings in configure, lib, examples, tests.
     93     test_digestauth2: supported old libcurl versions.
     94     Fixed tests with GnuTLS in non-default path.
     95     configure: sorted messages in final config summary.
     96     Fixed non-debug build without HTTPS.
     97     configure: removed old workaround for Solaris.
     98     test_upgrade: adapted for macOS. -EG
     99 
    100 December 2023
    101     "Upgraded" TLS connections: fixed data pumping in various edge conditions.
    102     'bootstrap': fixes and simplifications.
    103     Digest Auth: added default timeout and max nc values, added daemon options
    104     for default nonce timeout and max nc values, added testing, implemented
    105     setting DAuth defaults by configure parameters. -EG
    106 
    107 November 2023
    108     Updated HTTP methods, headers and reason phrases.
    109     Renamed one new basic auth function, improved doxy.
    110     digest auth: updated header, slightly modified multi-value processing. -EG
    111     websocket_threaded_example: fix websocket url string. -Evgeniy Gavrilenko
    112     configure: warn if building without threads. -EG
    113     configure: added detection of FD_SETSIZE value and ability to override it.
    114     internal.h: added macros for polling mode detection.
    115     Added use of configure-detected system default FD_SETSIZE value.
    116     internal.h: added macros for internal threads modes detection.
    117     Added MHD_OPTION_APP_FD_SETSIZE and MHD_FEATURE_FLEXIBLE_FD_SETSIZE.
    118     daemon.c: moved processing and checking of app-provided listen socket.
    119     MHD_start_daemon(): mark listen as UNIX based on available information.
    120     MHD_start_daemon(): added stricter checks for bind() and listen() return
    121     values.
    122     MHD_start_daemon(): added check for epoll FD to fit fd_set for external
    123     polling mode.
    124     Implemented and documented MHD_OPTION_LISTEN_SOCKET followed by
    125     MHD_INVALID_SOCKET.
    126     Fixed ignored daemon port when MHD_OPTION_LISTEN_SOCKET or
    127     MHD_OPTION_SOCK_ADDR are used as documented.
    128     MHD_start_daemon(): further improved UNIX / IP socket detection.
    129     Implemented new option MHD_OPTION_SOCK_ADDR_LEN.
    130     MHD_start_daemon(): added check for app-provided socket to fit fd_set.
    131     MHD_start_daemon(): fixed leaked listen socket when daemon start failed.
    132     MHD_add_connection(): added more checks for correct members of sockaddr.
    133     Timeout handling added detection of more conditions to process the data
    134     without waiting.
    135     MHD_quiesce_daemon(): fixed return value if already quiesced.
    136     MHD_start_daemon(): reject INTERNAL_POLLING_THREAD if threads are disabled.
    137     test_daemon: fixed to not skip the test if failed.
    138     test_digestauth2: fixed order of the initial checks.
    139     Improved daemon shutdown handling in external polling mode.
    140     Unified and simplified fd_set filling.
    141     Added new daemon flag MHD_USE_NO_THREAD_SAFETY and testing.
    142     Officially support zero for MHD_OPTION_THREAD_POOL_SIZE.
    143     test_upgrade: used sized send and receive, removed VLA, other improvements.
    144     test_upgrade: implemented proper timeout detection and handling. -EG
    145 
    146 September 2023
    147     fix #7928: correct tutorial direntry.
    148     proper fix for #7757. -CG
    149     W32 VS projects: added perf_replies.
    150     W32 VS projects: added .editorconfig.
    151     perf_replies improvements for W32.
    152     mhd_threads: muted compiler warning on W32.
    153     mhd_threads: fixed check for error when starting a new thread on W32.
    154     Renamed 'pid' -> 'tid' when used for threads.
    155     mhd_str: fixed possible compiler and run-time sanitizers warnings.
    156     Muted and fixed some compiler warnings.
    157     W32 VS project: corrected compiler settings.
    158     W32 VS: really muted run-time false warnings about data truncation.
    159     examples/sessions.c: fixes.
    160     Fixed missing <errno.h> includes.
    161     Refactored threads support to handle platforms without "invalid" ID value.
    162     Fixed MHD_CONNECTION_INFO_DAEMON: return master daemon. -EG
    163     check rvalues from pthread_mutex_, MHD_add_response_header,
    164     MHD_post_process in examples.
    165     Theoretical use-after-free in test on error path. -CG
    166     Do no use internal magic number if it is used by the remote client.
    167     Refactoring: store "request target" original length.
    168     Detect error earlier if request HTTP version is bad.
    169     Added calculation of request headers total size.
    170     Rewritten handling of exhaustion of memory pool when receiving.
    171     tests: fixed compiler warnings, copy-paste error, added error reporting.
    172     test_long_header: re-use the same port for all checks.
    173     Control acceptance of LF as CRLF in chunked encoding in the same way as
    174     in headers parsing.
    175     Improved compatibility with old compilers.
    176     Fixed more compiler warnings. -EG
    177 
    178 Sun Sep  3 12:23:18 AM CEST 2023
    179     Prevent queueing of responses if connection is not currently in the
    180     access handler callback (which was always not allowed per API spec,
    181     but is now met with an appropriate error response). Fixes #7757. -CG
    182 
    183 August 2023
    184     Improved CPU cores detection in perf_replies. -EG
    185 
    186 July 2023
    187     Added new tool perf_replies with automatic detection of number of available
    188     CPU on system and for the program. -EG
    189 
    190 June 2023
    191     Bump version numbers as v0.9.77 was released on parallel branch.
    192     Added test for MHD_get_version{,_bin} function and related macros.
    193     base64 decoding: added more compact code version.
    194     Refactoring: check whether memory pool block is resizeable.
    195     Re-implemented parsing of the request line from scratch with strict
    196     conformance with RFC 9110 and 9112 requirements.
    197     Re-implemented parsing of the request headers and footers from scratch with
    198     strict conformance with RFC 9110 and 9112 requirements.
    199     Fuzzing tests: almost completely re-implemented. The new version is unified
    200     and much easier to maintain.
    201     Added new tests for folded headers.
    202     Corrected HTTP error responses for clients.
    203     connection: fixed pipelined requests processing.
    204     Added checks for correct values specified for connection memory limits.
    205     process new connection: fixed missing mutex unlock in error handling path.
    206     W32 VS Projects: fixed code parsing by GUI.
    207     Focused all read-buffer grows in a single point, related improvements. -EG
    208 
    209 May 2023
    210     Improved portability of boostrap (and autogen.sh)
    211     Muted more compiler warnings in configure.
    212     Tests: updated to support new libcurl APIs and fixed deprecation
    213     warnings with new versions (the old versions are supported still).
    214     Tests: minor and cosmetic fixes and improvements.
    215     Tests: compiler warnings fixes.
    216     configure: bump gettext version.
    217     Tests: fixed build with C89 compilers.
    218     Tests: fixed tests on Darwin 22.x (Ventura).
    219     Tests: redesigned one tests group to avoid stress-testing of the OS.
    220     configure: improved portability for exotic platforms.
    221     examples: removed non-portable functions, added some checking,
    222     fixed compiler warnings, fixed erroneously commented out code.
    223     configure: fixed detection of __FUNCTION__ magic macro.
    224     Unified function name magic macros usage in code.
    225     W32 VS projects: supported ARM and ARM64.
    226     Fixed compiler warning on x32.
    227     Some minor fixes for W32 VS compilation. -EG
    228 
    229 
    230 April 2023
    231     Implemented and used new function MHD_pool_deallocate().
    232     Updated libtool fixes.
    233     Removed some autotools files from git.
    234     Added autoconf patches and fixes.
    235     {md5,sha256}_ext.c: fixed processing of initialisation error with NULL
    236     handler. -EG
    237 
    238 March 2023
    239     Upgraded TLS: fixed inefficient communication.
    240     Upgraded TLS: use more available memory for pumping the data. -EG
    241 
    242 Web 29 Mar 2023 20:56:00 CEST
    243     Bumped version as the hotfix was released based on the separate branch. -EG
    244 
    245 March 2023
    246     configure: reordered checks for compiler flags.
    247     configure: fixed checks for tsearch() and related changes.
    248     Makefile: fixed build with 'make' without nested vars support.
    249     configure: fixed compiler warnings.
    250     libcurl.m4: patched to fix compiler warning.
    251     configure: internal fixes, compiler warning fixes, cosmetics, better
    252     POSIX compatibility, fixed compatibility with old autoconf.
    253     Upgraded TLS: warn if emergency buffer is used. -EG
    254 
    255 Sun Feb 26 05:49:30 PM CET 2023
    256     Fix potential DoS vector in MHD_PostProcessor discovered
    257     by Gynvael Coldwind and Dejan Alvadzijevic (CVE-2023-27371). -CG
    258 
    259 February 2023
    260     epoll: immediately notice when other side closes the socket, instead of
    261     waiting for timeout. -CG
    262 
    263 December 2022
    264     Refactored cookies parsing.
    265     Always close connection after reply if both Content-Length and chucked are
    266     used. This is specified by RFC.
    267     Added new daemon option MHD_OPTION_CLIENT_DISCIPLINE_LV with more detailed
    268     control of accepted/rejected non-standard requests.
    269     Added new M4 helper macro.
    270     configure: used better detection of some functions when cross-compiling.
    271     configure: try to detect whether eventfd is enabled.
    272     Compiler warning fixes.
    273     Improved reported strings in tests. -EG
    274 
    275 November 2022
    276     connection: refuse requests with unsupported Transfer-Encoding.
    277     connection: reject or log requests with both chunked encoding and
    278     Content-Length.
    279     tests: fixed checking response headers as null-terminated string.
    280     Some tests fixes.
    281     configure: check fixes.
    282     Refactored user-poison: minimized scope of non-sanitized code.
    283     digestauth: avoided malloc() repeating by using the new function.
    284     MHD_get_version_bin(): added new function.
    285     test_parse_cookies: rewritten. -EG
    286 
    287 October 2022
    288     Reworked HTTPS tests. Removed hardcoded TLS version and ciphers, updated
    289     self-signed certificate.
    290     Fixed delayed call of connection notification callback in
    291     thread-per-connection mode.
    292     Fixed delayed new connection notification in thread-per-connection mode.
    293     Minor internal code improvements.
    294     Added handling of "DEBUG" preprocessor macro as an alias of "_DEBUG".
    295     TLS initialisation: re-implemented. New implementation trying to use
    296     "libmicrohttpd" system-wide GnuTLS configuration by default with fallbacks
    297     to generic system-wide GnuTLS configuration and default GnuTLS
    298     configuration.
    299     New daemon option to use addition to default configuration instead of
    300     specifying full configuration string.
    301     Added relevant tests for GnuTLS initialization.
    302     Added reporting of failed part of GnuTLS configuration string.
    303     Added MHD_FEATURE_DEBUG_BUILD value.
    304     Implemented internal protection from some wild data hypothetically reported
    305     by accept4().
    306     Internal refactoring.
    307     Prevented sending "100 continue" if request has no body or if any part of
    308     request data has been received.
    309     Reworked handling of situation when app just partially processed the data:
    310     if any data was processed then zero timeout if used for polling sockets,
    311     if no data was processed then callback in not called until the new data
    312     arrived.
    313     Fixed handling of various errors conditions detected in requests.
    314     Added test with Content-Length broken value in request.
    315     test_head: added check for excess data in reply
    316     Improved epoll connection handling.
    317     Fuzzing tests: fixed CPPFLAGS.
    318     configure: do not pass AM_TESTS_ENVIRONMENT directly.
    319     configure: added summary message about heavy and fuzzing tests
    320     test-suite: marked some tests as "very heavy" tests
    321     configure: improved check for asserts. -EG
    322 
    323 September 2022
    324     Added testing of userdigest and userhash calculations.
    325     Implemented SHA-512/256 from scratch.
    326     Digest Auth: implemented SHA-512/256 support, added
    327     MHD_FEATURE_DIGEST_AUTH_SHA512_256 and relevant tests.
    328     Made all algorithms (MD5, SHA-256, SHA-512/256) optional with ability
    329     to remove by configure parameter.
    330     Digest Auth: internal refactoring and improvements.
    331     configure: minor improvements.
    332     Fixed initialisation of very old GnuTLS versions.
    333     Replace public domain MD5 implementation with the new implementation
    334     written from scratch.
    335     MD5, SHA-256, SHA-512/256: various code improvements, special versions for
    336     compact code.
    337     Digest Auth: changed internal algorithm for re-use of nonce-nc slot.
    338     Digest Auth: used weak pseudo-random generators to avoid slot clashes.
    339     Implemented optional ability to use GnuTLS functions for MD5 and SHA-256
    340     calculations.
    341     Fixed harmless unwanted extra data processing resulting in triggering of
    342     the assert.
    343     Added testing of HEAD requests.
    344     Minor internal changes.
    345     Fixed compiler warnings for compact code version.
    346     Muted compiler warnings with clang.
    347     Configure: more workarounds for clang on W32 with incorrect headers.
    348     Removed long-unused "gauger" from tests.
    349     Fixed compiler warnings in test.
    350     test_add_conn: added reasonable limits. -EG
    351 
    352 August 2022
    353     Added testing of userhash parameter parsing.
    354     Added testing of the auth type headers in one request.
    355     Warn in log if random data has not been initialised.
    356     Digest Auth: improved response header in RFC2069 mode.
    357     Added more string processing internal functions.
    358     Digest Auth: added new option MHD_OPTION_DIGEST_AUTH_NONCE_BIND_TYPE to
    359     control nonces generation.
    360     Increased testing for Digest Auth.
    361     Digest Auth: do not use reproducible nonces generation by default.
    362     Minor correction for auth headers processing.
    363     Digest Auth: internal refactoring.
    364     Digest Auth: added algorithm value to username info (required for userhash
    365     values).
    366     Digest Auth: added new public functions for userhash and userdigest
    367     calculations. -EG
    368 
    369 July 2022
    370     Digest Auth: internal optimisations and refactoring, digest_auth_check
    371     almost completely rewritten.
    372     Digest Auth: removed use of VLA.
    373     Digest Auth: added support for username in extended notation and test
    374     for extended notation.
    375     Digest Auth: implemented userhash support and tests for extended notation.
    376     MHD_add_response_entry(): refactoring
    377     Digest Auth: implemented DAuth response function
    378     MHD_queue_auth_required_response3() from scratch. Removed old
    379     implementations, old functions converted to wrappers for the new function.
    380     Digest Auth: added new group of tests.
    381     Digest Auth: added related MHD_FEATURES_* values.
    382     Digest Auth: added detection of the algorithm used by the client and
    383     use specified algorithm if allowed by application.
    384     Configure: cosmetics and reports improvements, control static and shared
    385     enablement by --enable-build-type=.
    386     Added new daemon option MHD_OPTION_DIGEST_AUTH_RANDOM_COPY and tests.
    387     Digest Auth: implemented support for old RFC 2069 (if allowed by app) and
    388     tests for RFC 2069.
    389     Internal refactoring: moved all request-related connection struct members
    390     to dedicated struct. The same for reply-related struct members.
    391     Implemented support for both Basic and Digest headers in the same
    392     request. -EG
    393 
    394 June 2022
    395     Fixed compiler warnings in main code and examples.
    396     Added error checking in examples.
    397     Added test for parsing auth headers.
    398     Improved parsing of auth headers.
    399     Added more internal functions for quoted string processing.
    400     Added test for quoting string processing.
    401     Digest Auth: internal optimisations.
    402     Basic Auth: fixed handling of realms with slashes and/or double quotes.
    403     Digest Auth: fixed use of possible maximum client nonce length as maximum
    404     server nonce length. Reduced size of internal arrays.
    405     Basic Auth: new function MHD_queue_basic_auth_fail_response3() with support
    406     for RFC 7617.
    407     Basic Auth: added new function MHD_basic_auth_get_username_password3() with
    408     more details about username and password. Technically allow binary zero in
    409     username and in password.
    410     Fixed data races when closing upgraded connection.
    411     Replaced public domain Base64 decoder with the new implementation written
    412     from scratch. The new implementation has very precise checks for the input
    413     data.
    414     Added new test for Base64 decoding.
    415     Updated examples to use new Basic Auth functions.
    416     Fixed and improved postprocessor tests.
    417     Ported test to non-VLA compilers.
    418     Added configure parameter --enable-compact-code.
    419     Removed duplication of "Connection: upgrade" header. Patch by Alexander
    420     Irion.
    421     Configure: removed some unneeded compiler flags.
    422     Digest Auth: improved RFC match (qop value caseless match), check
    423     parameters length validity before checking the values validity, correctly
    424     compare URLs with binary zeros, check URL arguments only in the same order
    425     as specified in DAuth header.
    426     Added internal functions for percent-decoding and tests for
    427     percent-decoding.
    428     Added internal function for hex to bin decoding, tests for hex<->bin
    429     decoding.
    430     Digest Auth: added new function MHD_digest_auth_get_request_info3() and
    431     MHD_digest_auth_get_username3() with detailed information about DAuth
    432     request. -EG
    433     Fixed memory leaks in tests.
    434     Fixed wrong array size for Digest Auth. -CG
    435 
    436 May 2022
    437     Improved public doxy.
    438     Digest Auth: fixed missing mark on 'nc' value as 'used'.
    439     Digest Auth: added internal checks for unrealistically high values.
    440     Digest Auth: added check for correct values from application.
    441     Digest Auth: nonce timestamps changed to milliseconds to lower conflict
    442     probability.
    443     Digest Auth: implemented management nonce-nc map array slots so old
    444     entries are removed safely while trying to avoid to remove the new entries.
    445     configure: added 'debugger' build type.
    446     Added more tests for cookies parsing.
    447     Digest Auth: use nonce-nc map arrays with locks in master daemon only
    448     so works can re-use the nonces and nc information.
    449     MHD_set_connection_option(): reduced scope for the lock.
    450     Fixed leak of mutexes when daemon creation failed and when closing daemon
    451     with thread pool.
    452     Digest Auth: fixed stale nonce result value ambiguity.
    453     Digest Auth: added special check for fabricated nonces.
    454     Added new functions MHD_digest_auth_check3() and
    455     MHD_digest_auth_check_digest3() with detailed result of the checks.
    456     Added return NULL MHD_CONNECTION_INFO_CLIENT_ADDRESS when information is
    457     not available.
    458     Improved internal handling of non-IP connections (UNIX sockets or pipes)
    459     when processing the client address.
    460     Fixed compiler warnings.
    461     Increased testing of cookies parsing.
    462     Completely re-written cookies parsing. The new code follow RFC 6265.
    463     Made cookies parsing functionality optional, can be disabled by configure.
    464     Configure: added more warning flags.
    465     Configure: internal improvements.
    466     Globally changed '#if HAVE_SOMETHING' to '#ifdef HAVE_SOMETHING'.
    467     Enabled more compiler warnings in W32 projects.
    468     Fixed MHD functionality with blocking sockets. Patch by Kolja Nowak.
    469     Moved some macros and declaration to new specialised headers: basicauth.h
    470     and digestauth.h.
    471     Added new function to process quoted strings.
    472     Digest Auth: reworking support for multiple digest algorithms.
    473     Response processing: better handle unrealistic but broken situation.
    474     Basic and Digest Auth: completely reworked headers parsing, unified code.
    475     Added new autoconf macros.
    476     Configure: added more workarounds for clang.
    477     Fixed possible use of uninitialised variable.
    478     Added new test for Basic Auth.
    479     Some code readability improvements. -EG
    480 
    481 April 2022
    482     Added autoconf macro for checking compiler parameter/flag.
    483     Improved -fvisibility compiler flag support detection in configure.
    484     Fixed compiler warnings.
    485     Moved fixed libtool-specific flags to Makefile from configure.
    486     Configure: added reporting of final compiler/linker flags.
    487     Fixed ignored user linker flags when building library binary.
    488     Improved makefiles dependency specification.
    489     Implemented --enable-build-type=TYPE configure parameters for ready-to-use
    490     configuration sets (defaults).
    491     Separated internal types for request headers and response headers.
    492     Fixed many unneeded drops of 'const' qualifier, converted some pointers
    493     to 'const'.
    494     Added use of _MHD_EXTERN with all external function definitions.
    495     Refactored response creation functions.
    496     Added new function MHD_create_response_from_buffer_static() to avoid
    497     unwanted dropping of 'const' when application is using static strings.
    498     Added new API function MHD_create_response_from_buffer_copy().
    499     Public doxy improvements.
    500     Improved handling of TLS backends for libcurl when testing HTTPS.
    501     Updated TLS certificates for tests and examples. New certificates
    502     were generated with SAN fields to match actual requirements.
    503     Fixed old style function definitions in examples.
    504     Tuned compiler warning flags.
    505     Fixed many preprocessor macros (removed space before bracket).
    506     Fixed printf() format specifications in examples.
    507     Removed non-literal strings for printf in examples.
    508     Improved portability of examples.
    509     Fixed unaligned access via sockaddr_in pointers.
    510     Fixed unaligned access in MHD_get_connection_info() and
    511     MHD_get_daemon_info().
    512     Compiler warning fixes.
    513     Changed: any negative number returned by response data generation
    514     callback function is treated as an error.
    515     Fixed setting custom connection timeout value for thread-per-connection
    516     mode.
    517     Fixed short (lees then one second) busy-waiting when connection is about
    518     to expire by switching to milliseconds accuracy instead of seconds.
    519     Added new functions MHD_get_timeout64(), MHD_get_timeout64s(),
    520     MHD_get_timeout_i().
    521     Added some checks for possible value trim due to width conversion.
    522     Digest Auth: continuation of refactoring, optimisations.
    523     Digest Auth: do not use nonces provided by the client if they were not
    524     generated previously by MHD. -EG
    525 
    526 March 2022
    527     Added internal check for suitability of used response.
    528     Improved doxy.
    529     Improved handling of application-provide "Content-Length" header.
    530     Internally separated "Icy" flag from the response code.
    531     Fixed Address Sanitizer unpoison of memory when memory pool is destroyed.
    532     Improved log messages.
    533     Added more checks for "Upgrade" handling.
    534     Better internally separated response type handling:
    535       headers only without
    536       body-specific headers, body-specific headers without body
    537     (Content-Length/Transfer-Encoding),
    538       all headers with body.
    539     Blocked MHD_SIZE_UNKNOWN value for buffer-based responses.
    540     Significantly improved doxy for MHD_queue_response().
    541     Added new function MHD_create_response_empty()
    542     Fixed compiler flags for UBsan in configure.
    543     Added new option for "--enable-sanitizers=" parameter.
    544     Improved autoconf macros. -EG
    545 
    546 January 2022
    547     Tuned automake options.
    548     Fixed compiler warning in examples.
    549     Fixed use of initialised variable in tests.
    550     Removed unused autotools files.
    551     .gitignore: cleanup and update.
    552     Autotools: always let user override build flags.
    553     Moved 'po' files to separate directory.
    554     Fixed missing include file in docs.
    555     Fixed 'make distcheck'.
    556     Fixed use on GNU/kFreeBSD.
    557     Fixed HTTP/1.1 or 1.0 selection in tests.
    558     Other tests improvements and fixes.
    559     Digest Auth: changed "md5" / "sha-256" to "MD5" / "SHA-256" to better
    560     match RFC (while clients should use caseless matching).
    561     Initial digest auth refactoring, reject invalid input.
    562     Global rename of callback parameter 'con_cls' -> 'req_cls'.
    563     Digest auth tests improvements and fixes.
    564     Added test for parallel digest auth requests.
    565     Minor autoconf macros fixes. -EG
    566 
    567 December 2021
    568     configure: fixed unwanted output on Fedora.
    569     configure: clarified licence message.
    570     Doxy corrections and improvments. -EG
    571 
    572 Sun 26 Dec 2021 20:30:00 MSK
    573     Releasing GNU libmicrohttpd 0.9.75 -EG
    574 
    575 December 2021
    576     Fixed Makefile warning on MinGW.
    577     Fixed compiler warning on MinGW.
    578     Fixed "configure" portability (for NetBSD).
    579     MSVC project cosmetics.
    580     MSVC fixed project to fix linker warning.
    581     Fixed compiler warning on some platforms.
    582     Further improved test_client_put_stop to get stable results on all
    583     platforms.
    584     Added workaround for platforms (like OpenBSD) where system monotonic clocks
    585     may jump forward and back.
    586     Added more checks in test_large_put, increased timeout (was too small for
    587     this test). -EG
    588 
    589 Sun 19 Dec 2021 18:30:00 MSK
    590     Releasing GNU libmicrohttpd 0.9.74 -EG
    591 
    592 December 2021
    593     Fixed doxy for MHD_suspend_connection().
    594     Some code improvements for new test test_client_put_stop.
    595     Added special log message if thread creation failed due to system limits.
    596     Fully restructured new_connection_process_() to correctly handle errors,
    597     fixed missing decrement of number of daemon connections if any error
    598     encountered, fixed app notification of connection termination when app has
    599     not been notified about connection start, fixed (highly unlikely) reset of
    600     the list of connections if reached daemon's connections limit.
    601     configure: fixed some compiler warnings reported in config.log.
    602     Fixed tests on FreeBSD to support system-limited rate of RST packets and
    603     'blackhole' system setting. -EG
    604     Fixed tests for libmagic to really use libmagic in examples. -CG
    605     Used tricks in code formatting to workaround uncrustify bugs.
    606     configure: improved compatibility with various shells.
    607     configure: added selective enable of sanitizers.
    608     Fixed compatibility with old GnuTLS versions.
    609     Fixed tests compatibility with old libcurl versions.
    610     Fixed busy-waiting in test_timeout (fixed CPU load spikes in the test).
    611     test_https_time_out: check rewritten, previously it is was no-op.
    612     test_upgrade{,_large}: fixed passing of socket value to GnuTLS on W32.
    613     Simplified Makefile for HTTPS tests.
    614     Added detection of old broken GnuTLS builds (on RHEL6 and clones) and
    615     disabled some tests broken with these builds.
    616     Muted compiler warnings with old libcurl versions.
    617     Reworked dlltool support: added support for weakened oversimplified
    618     half-broken llvm-dlltool
    619     Silenced MS lib tool warning and MS lib tool invocation.
    620     Added Makefiles rules for automatic regeneration of all required files if
    621     anything is missing.
    622     Added Makefile silent rules support for W32 RC and W32 static libs.
    623     Added local patches for autotools (mainly for libtool) to build MHD
    624     correctly on modern MinGW64/Clang.
    625     Updated HTTP headers macros from registry. -EG
    626 
    627 November 2021
    628     Clarified comments and doxy for MHD_str* and related tests.
    629     MHD_uint32_to_strx(): rewritten for readability and minor optimization,
    630     used indexes instead of pointers.
    631     Documented in doxy how to use MHD_AccessHandlerCallback.
    632     mhd_sockets: added more network error codes.
    633     W32 socket pair: set TCP_NODELAY to avoid unwanted buffering and delays.
    634     Additional doxy fixes in microhttpd.h.
    635     Fixed blocking sockets setting in tests and examples for W32.
    636     Added checks for fcntl() results in tests and examples.
    637     Added series of tests based on simple HTTP client implementation developed
    638     for testing of MHD.
    639     Renamed 'early_response' connection flag to 'discard_request' and reworked
    640     handling of connection's flags.
    641     Clarified request termination reasons doxy, fixed reporting of
    642     MHD_REQUEST_TERMINATED_READ_ERROR (previously this code was not really used
    643     in reporting).
    644     Enforce all libcurl tests exit code to be zero or one.
    645     Rewritten client upload processing: removed redundant checks, fixed
    646     skipping of chunk closure when not data is not received yet, fixed skipping
    647     of the last LF in termination chunk, handle correctly chunk sizes with more
    648     than 16 digits (leading zeros are valid according to HTTP RFC), fixed
    649     handling of CRCR, LFCR, LFLF, and bare CR as single line delimiters, report
    650     error when invalid chunk format is received without waiting to receive
    651     (possibly missing) end of the line, reply to the client with special error
    652     if chunk size is too large to be handled by MHD (>16 EiB).
    653     Added error reply if client used too large request payload (>16 EiB).
    654     Fixed return value for MHD_FEATURE_AUTOSUPPRESS_SIGPIPE on W32, now it
    655     returns MHD_YES as W32 does not need sigpipe suppression.
    656     configure: reordered and improved headers detection. Some headers require
    657     other headers to be included before, now configure supports it.
    658     Added missing ifdef guard for <stdbool.h>.
    659     mhd_sockets: reordered includes for better compatibility.
    660     Some code readability and formatting improvements. -EG
    661 
    662 October 2021
    663     Added test family test_toolarge to check correct handling of the buffers
    664     when the size of data is larger than free space.
    665     Fixed missing updated of read and write buffers sizes.
    666     Added detection and use of supported "noreturn" keyword for function
    667     declaration. It should help compiler and static analyser.
    668     Added support for leak sanitizer.
    669     Fixed analyser errors on W32.
    670     Partially reworked memory allocation from the pool, more robust
    671     implementation, always track read and write buffers.
    672     Added custom memory poisoning in memory pool with address sanitizer.
    673     Added missing update of the read buffer size.
    674     Addition for doxy for new behaviour of MHD_del_response_header().
    675     Added two tests with non-standard symbols in requests.
    676     Removed double close of connection with error in headers processing.
    677     Respond to the client with error if chunked request has broken chunked
    678     encoding as required by HTTP RFC instead of just closing the connection.
    679     Fixed request headers processing. Do not recognize bare CR as end of line.
    680     Fixed processing of CRCR, bare CR, LFCR, and LFLF as end of the line for
    681     request chunked encoding. Now only CRLF or bare LF are recognized as end
    682     of line.
    683     Added Lawrence Sebald to the AUTHORS file (iovec-based responses).
    684     Check for PAGESIZE and PAGE_SIZE macros and check whether they can be used
    685     for static variable initialization.
    686     Include "MHD_config.h" before all other includes to set macros required to
    687     be set before standard includes.
    688     Chunked response: abort with error if application returns more data than
    689     requested.
    690     Monotonic clock: use only native clock on W32 as all other clocks are just
    691     wrappers.
    692     W32: fixed builds with MSVC, added projects for VS2022, added MSVC
    693     universal project that use latest available toolset, use C17 if supported.
    694     Chunked response: fixed calculation of number of bytes left to send.
    695     microhttpd.h: doxy clarifications for sockets polling.
    696     Updated HTTP statuses, methods, and headers names from the registries.
    697     Further improved doxy for MHD_add_response_header().
    698     A few comments improvements and clarifications.
    699     Added internal connection's flag indicating discard of the request. -EG
    700     Websockets update by David Gausmann. -DG
    701     Fixed reported value for MHD_CONNECTION_INFO_CONNECTION_TIMEOUT.
    702     Minor code readability improvements in MHD_set_connection_option().
    703     Improved doxy for MHD_get_timeout().
    704     Memorypool: minor code improvements. -EG
    705 
    706 September 2021
    707     Improved system includes headers detection and usage. Removed unused
    708     headers detection.
    709     Added indirect calculation of maximum values at compile time by
    710     using types size detection. These values are used only to mute
    711     compiler warnings.
    712     Fixed pre-compiler errors if various *_MAX macros defined with
    713     non-digits symbols not readable for pre-compiler.
    714     Limit number of used CPU cores in tests to 6, unless heavy tests are
    715     enabled.
    716     Disabled parallel tests with libcurl if heavy tests are enabled.
    717     configure: removed '--enable-sanitizer' and added '--enable-sanitizers'
    718     parameters. Added testing for supported sanitizers and enabling only
    719     supported sanitizers.
    720     Added support for run-time sanitizers settings for tests when
    721     sanitizers are enabled.
    722     Added support for undefined behavior sanitizer without run-time library.
    723     Fixed various undefined behavior sanitizer detected errors, improved
    724     portability.
    725     Fixed how bitwise NOT is used with enum, fixed portability.
    726     microhttpd.h: changed macros MHD_CONTENT_READER_* to use ssize_t.
    727     test_postprocessor: added more check, improved error reporting, added
    728     new test data.
    729     postprocessor: fixed undefined behavior (memcpy(), memmove() with zero
    730     size and NULL pointer).
    731     Updated copyright year in W32 DLLs.
    732     postprocessor: fixed empty key processing.
    733     test_postprocessor: added tests with hex-encoded values.
    734     postprocessor: fixed incomplete processing of the last part of hex-encoded
    735     value if data was broken into certain sized pieces.
    736     Used type specifiers for printf() from inttypes.h to improved compatibility
    737     with various run-time libs. Fallback to standard values if type specifiers
    738     are not defined.
    739     Added detection of used run-time library (MSVCRT/UCRT) on W32.
    740     testcurl: fixed incorrect case-insensitive match for method name. Method
    741     name must be checked by using case-sensitive match.
    742     microhttpd.h: clarified some doxy descriptions.
    743     Prevented potential double sending of error responses.
    744     Fixed application notification with MHD_REQUEST_TERMINATED_COMPLETED_OK
    745     when error response has been sent (MHD_REQUEST_TERMINATED_WITH_ERROR is
    746     used).
    747     Avoid trying to send error response if response is already being sent.
    748     Improved log error message when error response is processing. -EG
    749 
    750 August 2021
    751     Silently drop "keep-alive" token from response "connection" header,
    752     "keep-alive" cannot be enforced and always enabled if possible.
    753     Further improved doxy for MHD_add_response_header().
    754     Added detection of the "Date:" header in the response headers set by
    755     app at response forming time.
    756     Disallow space in response header name, allow tab in response header
    757     value.
    758     Added internal MHD_uint8_to_str_pad() function.
    759     Used internal MHD_uint8_to_str_pad() in datestamp generation function.
    760     Added detection and reporting of incorrect "Upgrade" responses. -EG
    761     Fixed short busy waiting (up to one second) when connection is going
    762     to be closed. -AI
    763     Minor improvement for test_callback, test_get_chunked
    764     Fixed chunked responses with known size.
    765     Added two more tests for chunked response.
    766     Fixed chunked responses with predefined data (without data callback).
    767     Fixed calculation of the buffer size for the next response chunk.
    768     Completely rewritten reply header build function. The old version
    769     had several levels of hacks, was unmaintainable, did not follow
    770     HTTP specification in details; fixed used caseless header matching
    771     where case-sensitive matching must be used; removed two passes of
    772     header building. New version use clear logic and can be extended
    773     when needed.
    774     Changed behaviour: "Connection: keep-alive" is not being sent
    775     for HTTP/1.1 connection (as per HTTP RFC).
    776     test_get_chunked: fixed error reporting.
    777     HTTPS tests: fixed memory leaks if function failed.
    778     libcurl tests: improved handling of curl multi_*.
    779     Added two tests for correct choice of "Keep-Alive" or "Close".
    780     Simplified Makefile for testcurl.
    781     Fixed select() error handling in tests.
    782     microhttpd.h: minor macro formatting
    783     Changed behaviour: if response size is unknown and chunked encoding is
    784     allowed, chunked encoding is used even for non-keep-alive connection as
    785     required by HTTP RFC.
    786     Added two more tests for chunked replies.
    787     Simplified keepalive_possible(); added new value for MHD_ConnKeepAlive,
    788     added third state "Upgrade".
    789     Changed behaviour: used HTTP/1.1 replies for HTTP/1.0 requests as
    790     required by HTTP RFC. HTTP/1.0 reply still can be enforced by response
    791     flag.
    792     Added more doxy for MHD_ResponseFlags, added new names with the same
    793     values as old names: MHD_RF_HTTP_1_0_COMPATIBLE_STRICT and
    794     MHD_RF_HTTP_1_0_SERVER.
    795     Added new value MHD_RF_SEND_KEEP_ALIVE_HEADER to enforce sending of
    796     "Connection: keep-alive" even for HTTP/1.1 clients when keep-alive is
    797     used.
    798     test_get_close_keep_alive: added more combinations of parameters to
    799     check.
    800     Added separate flag for chunked response in connection instead of
    801     reusing the same flag as for chunked request.
    802     Added new connection's flag "stop_with_error".
    803     Fixed empty first line processing: the request could be not processed
    804     unless something else kicks next processing the same connection again.
    805     Added new connection states: MHD_CONNECTION_REQ_LINE_RECEIVING,
    806     MHD_CONNECTION_FULL_REQ_RECEIVED, MHD_CONNECTION_START_REPLY to
    807     simplify states logic.
    808     Changed write buffer allocation logic: as connection buffer size is
    809     known and fixed, use initially use full buffer for writing and reduce
    810     size of part used for writing if another allocation from the same
    811     buffer needs to be done. Implemented helper function to automatically
    812     reduce the size of read or write part to allocate buffer for other
    813     needs.
    814     Added define of NDEBUG if neither _DEBUG nor NDEBUG are defined.
    815     As accepted sockets inherit non-blocking flag from listening socket
    816     on all platform except Linux, track this state to use less number
    817     of syscalls.
    818     Fixed compiler and static analyser warnings.
    819     Moved HTTPS tests helper file to the HTTPS tests directory.
    820     Minor Makefiles cleanup.
    821     Added support for new monotonic clock ids.
    822     Added new internal monotonic clock function with milliseconds accuracy.
    823     Fixed support of custom connection timeout in thread-per-connection mode.
    824     Added more error checking to test_timeout.
    825     microhttpd.h: removed duplicated macro.
    826     Refined timeouts handling. Switched from seconds resolution to milliseconds
    827     resolution, added automatic detection and support of low-resolution system
    828     clock to avoid busy-waiting at connection expiration. Added log message
    829     for too large timeout period (> 146 million years) with trim to supported
    830     values. -EG
    831 
    832 Wed 04 Aug 2021 06:56:52 PM CEST
    833     Introduce new MHD_CONNECTION_INFO_HTTP_STATUS. -CG
    834 
    835 July 2021
    836     Added automatic response flags with detection when response
    837     is being formed.
    838     Added special processing for response "Connection" headers, combined
    839     multiple "Connection" headers into single header.
    840     Restructured MSVC project files.
    841     Changed MSVC project defaults to Vista+ (WinXP is still supported).
    842     Fixed copy-paste error in mhd_aligh.h, added support for MSVC.
    843     Added internal function for printing hex and decimals numbers.
    844     Reply chunked body handling fixes, used new internal functions
    845     instead of snprintf().
    846     Added automatic response flag when app sets chunked encoding header.
    847     New internal function for chunked reply footer forming. Unification with
    848     reply header forming function just over-complicated things and made
    849     function hardly maintainable.
    850     Added new function MHD_get_reason_phrase_len_for(), related tests and
    851     updated scripts for response phrases.
    852     Added more tests for chunked replies.
    853     Added function to reset connection state after finishing processing of
    854     request-reply to prepare for the next request.
    855     Added even more tests for chunked replies.
    856     Added internal function for printing uint64_t decimal numbers. -EG
    857 
    858 June 2021
    859     Tests: implemented checking of response footer.
    860     Fixed loss of incoming data if more than half of buffer is
    861     used for the next request data.
    862     Fixed completely broken calculation of request header size.
    863     Chunked response: do not ask app callback for more data then
    864     it is possible to process (more than 16 MBytes).
    865     Check and report if app used wrong response code (>999 or <100)
    866     Refuse to add second "Transfer-Encoding" header.
    867     HTTPS tests: check whether all libcurl function succeeded.
    868     HTTPS tests: implemented new detection of TLS backend.
    869     HTTPS tests: fixed tests with new TLS defaults (SSL forbidden).
    870     Implemented detection of basic HTTP methods, fixed wrong
    871     caseless matching for HTTP method names.
    872     MHD_create_response_*() functions: improved doxy.
    873     MHD_add_response_header: added detailed comment about automatic
    874     headers.
    875     Do not allow responses with 1xx codes for HTTP/1.0 requests.
    876     Fixed used order of headers: now user response headers are used in
    877     the same order as was added by application.
    878     Added new internal function MHD_get_response_element_n_().
    879     Added detection of more compiler built-ins for bits rotations.
    880     Minor optimisation of caseless strings matching.
    881     Added MHD_str_remove_token_caseless_() function and tests.
    882     Added MHD_str_remove_tokens_caseless_() function and tests. -EG
    883 
    884 May 2021
    885     Doxy description clarifications for MHD_get_timeout() and related
    886     functions.
    887     Added MHD_create_response_from_buffer_with_free_callback_cls().
    888     Added SHA-1 calculation (required for WebSockets).
    889     Added new internal header mhd_aligh.h for checking alignment of
    890     variables.
    891     Fixed SHA-256 and MD5 calculation with unaligned data.
    892     Added tests for hashes with unaligned data.
    893     Used compiler built-ins for bits rotations.
    894     Added detection of HTTP version at early stage.
    895     Added early response of unsupported HTTP version.
    896     Fixed wrong caseless matches for HTTP version strings.
    897     Added calculation of error responses at compile time (avoided
    898     repeated strlen() for known data). -EG
    899 
    900 April 2021
    901     New test for reply chunked encoding. -EG
    902 
    903 Mon 26 Apr 2021 02:09:46 PM CEST
    904     Importing experimental Websocket support by David Gausmann. -CG
    905 
    906 Sun 25 Apr 2021 14:00:00 MSK
    907     Releasing GNU libmicrohttpd 0.9.73. -EG
    908 
    909 Sat 24 Apr 2021 23:00:00 MSK
    910     Fixed build with Clang and Visual Studio.
    911     MSVS project files updated.
    912     Enabled bind port autodetection with MSVS builds. -EG
    913 
    914 Fri 23 Apr 2021 14:27:00 MSK
    915     Fixed build without TLS lib.
    916     Fixed build without system poll() function.
    917     Fixed compiler warnings on 32-bit platforms.
    918     Fixed various compiler warnings. -EG
    919 
    920 Thu 22 Apr 2021 12:32:00 MSK
    921     Fixed some typos.
    922     Force disable TCP_CORK, TCP_NOPUSH, and TCP_NODELAY before switching
    923     connection to "upgraded" mode.
    924     Improved portability of the test-suite for upgraded connections. -EG
    925 
    926 Tue 20 Apr 2021 17:11:00 MSK
    927     Disabled NLS by default in configure. -EG
    928 
    929 Mon 19 Apr 2021 18:58:00 MSK
    930     Fixed testzzuf/test_put_chanked to correctly use MHD.
    931     Added internal error code for TLS errors.
    932     Added all missing messages to the .pot file.
    933     Detect more types of errors for receiving data and report
    934     error description in the MHD log.
    935     Added support for ALPN on TLS connections if supported by
    936     used TLS library. -EG
    937 
    938 Sun 18 Apr 2021 20:47:00 MSK
    939     Removed dead code.
    940     Limited iov-backed responses size to SSIZE_MAX as limited by
    941     system calls.
    942     Report error message in MHD log for send errors. -EG
    943 
    944 Sat 17 Apr 2021 18:50:00 MSK
    945     Unified upgrade test behavior for all platforms.
    946     Some code simplification and unification.
    947     Compiler warning (false positive) fixed. -EG
    948 
    949 Fri 16 Apr 2021 17:58:00 MSK
    950     Used run-time value if IOV_MAX if available.
    951     Fixed portability of error handling for sending functions.
    952     Detect pipes/unix sockets on fly and do not use TCP/IP specific
    953     functions with them.
    954     Fixed support of UNIX sockets on non-Linux kernels. -EG
    955 
    956 Fri 16 Apr 2021 10:23:39 AM CEST
    957     Detect if a socket is a UNIX domain socket and do not try to play
    958     with TCP corking options in this case (avoids useless failed
    959     syscalls). -CG
    960 
    961 Thu 15 Apr 2021 18:56:00 MSK
    962     Fixed configure '--enable-sanitizer' parameter.
    963     Stopped pushing of partial responses when limited by system maximum size
    964     for sendmsg(). -EG
    965 
    966 Web 14 Apr 2021 22:20:00 MSK
    967     Fixed: use sendmsg() in POSIX-compatible way, do not try to send more
    968     than IOV_MAX elements per single call. -EG
    969 
    970 Sun 11 Apr 2021 15:44:00 MSK
    971     Updated test TLS certificates to not expired modern versions, restored
    972     HTTPS examples compatibility with modern browsers.
    973     TCP_NODELAY is not pre-enabled for HTTPS connection as it actually
    974     does not speed-up TLS handshakes on moders OSes. -EG
    975 
    976 Thu 01 Apr 2021 21:29:46 MSK
    977     Fixed MD5 digest authorization broken when compiled without variable
    978     length arrays support (notably with MSVC).
    979     Fixed and muted compiler warning.
    980     Deeper test with zzuf if configured with --enable-heavy-tests.
    981     Removed run-check of assert() in configure to avoid core dumps. -EG
    982 
    983 Thu 01 Apr 2021 17:46:00 MSK
    984     Added new function MHD_run_wait() useful for single-threaded applications
    985     without other network activity.
    986     Added tests for the new function. -EG
    987 
    988 Wed 17 Mar 2021 20:53:33 MSK
    989     Re-factored startup log parameters processing. Warn user if wrong logger
    990     could be used potentially.
    991     Added headers doxy with information about minimal MHD version when
    992     particular symbols were introduced.
    993     Added new daemon option to indicate SIGPIPE handling by application for
    994     daemons being run in application thread. -EG
    995 
    996 Wed 24 Feb 2021 19:23:00 MSK
    997     SIGPIPE-related macro minor refactoring for readability.
    998     Added new response iov function (and related framework), based on the patch
    999     provided by Lawrence Sebald and Damon N. Earp from NASA. -EG
   1000 
   1001 Thu 04 Feb 2021 06:41:34 PM CET
   1002     Fix PostProcessor to always properly stop iteration when application callback
   1003     tells it to do so. -CG
   1004 
   1005 Sun 24 Jan 2021 21:30:00 MSK
   1006     Added '--enable-heavy-tests' configure parameter.
   1007     Minor configure.ac and Makefiles fixes. -EG
   1008 
   1009 Tue 19 Jan 2021 17:59:00 MSK
   1010     Fixed compatibility with autoconf. 2.70
   1011     Updated M4 macros. -EG
   1012 
   1013 Wed 06 Jan 2021 08:39:58 PM CET
   1014     Return timeout of zero also for connections awaiting cleanup. -CG
   1015 
   1016 Tue 29 Dec 2020 15:39:00 MSK
   1017     Improved speed of TLS handshake by pre-enabling TCP_NODELAY. -EG
   1018 
   1019 Mon 28 Dec 2020 21:36:00 MSK
   1020     Releasing libmicrohttpd 0.9.72. -EG
   1021 
   1022 Mon 28 Dec 2020 09:37:00 MSK
   1023     Completely reworked and rewritten TCP_CORK, TCP_NOPUSH, TCP_NODELAY and
   1024     MSG_MORE handling. Reduced number of sys-calls, fixed portability for
   1025     FreeBSD, OpenBSD, NetBSD, Darwin, W32, Solaris.
   1026     Removed usage of gnutls_record_cork() as it fully blocks stream until
   1027     final block is ready.
   1028     Fixed compatibility with C90 compilers.
   1029     Really started using sendmsg() for header + body combined single-call
   1030     response sending.
   1031     Fixed sending of response body by sendmsg() when it shouldn't be sent,
   1032     like responses for HEAD requests.
   1033     Improved error handling for gnutls_record_send().
   1034     Updated W32 resources for .DLLs.
   1035     Fixed building with various disabled features (like messages, HTTPS,
   1036     http-upgrade, authorization etc.)
   1037     Fixed possible SIGPIPE generation when sendfile() is used (it was always
   1038     possible on Linux that sendfile() produce SIGPIPE, now it's fixed).
   1039     Several compiler warnings muted and/or fixed in the lib code and in
   1040     the examples. -EG
   1041 
   1042 Sun 01 Nov 2020 17:17:00 MSK
   1043     Fixed conflict with system CPU_COUNT macro.
   1044     Minor improvements of error reporting in MHD daemon.
   1045     Fixed FTBFS with GnuTLS versions before 3.1.9
   1046     Fixed test_add_conn for multi-CPU machines.
   1047     Fixed analyzer warnings.
   1048     Fixed use-after-free and resources leaks for upgraded connections
   1049     in TLS mode with thread-per-connection. -EG
   1050 
   1051 Sun 25 Oct 2020 19:31:00 MSK
   1052     Fixed epoll mode without listening socket.
   1053     Minor improvements of thread sync.
   1054     Fixed broken sendfile on FreeBSD.
   1055     Fixed broken MHD with thread-pool and without listening socket.
   1056     Added four tests for MHD_add_connection().
   1057     Fixed several resources leaks in error handlers.
   1058     Re-implemented scheme of handling of externally added connections,
   1059     fixed thread-safety. -EG
   1060 
   1061 Wed 21 Oct 2020 10:00:58 AM CEST
   1062     Corking should be OFF when sending the footer (#6610). -AP/CG
   1063 
   1064 Wed 07 Oct 2020 11:07:00 MSK
   1065     W32 default target version changed to Vista, XP is still supported.
   1066     Minor fixes and additional asserts for memorypool.
   1067     IPv6 tests are not used if IPv6 is disabled at run-time. -EG
   1068 
   1069 Sun 27 Sep 2020 10:08:03 PM CEST
   1070     Fixed incorrect triggering of epoll edge polling for
   1071     "upgraded" TLS connections.  Fixed a few cases where
   1072     gnutls_record_uncork() return value was still ignored,
   1073     possibly causing buffer to not be flushed correctly. -CG
   1074 
   1075 Sat 26 Sep 2020 08:18:02 PM CEST
   1076     Make MHD_USE_NO_LISTEN_SOCKET work in conjunction with
   1077     MHD internal threads. -CG/DE
   1078 
   1079 Thu 24 Sep 2020 16:55:00 MSK
   1080     Fixed compiler warnings on W32.
   1081     Minor optimisation of MHD_YES/MHD_NO internal usage.
   1082     Refactor and cleanup of internal debugging macros.
   1083     Updated HTTP status codes, header names and methods from
   1084     the registries.
   1085     Fixed portability of test_upgrade_large.
   1086     Minor testsuite fixes.
   1087     Restored parallel build of libmicrohttpd (except tests). -EG
   1088 
   1089 Fri 11 Sep 2020 10:08:22 PM CEST
   1090     Fix crash problem in PostProcessor reported by MD. -CG
   1091     Fix GnuTLS configure test to check for gnutls_record_uncork. -CG
   1092 
   1093 Wed 19 Aug 2020 09:40:39 AM CEST
   1094     Add logic to check on MHD_pool_reallocate() failure reported on the
   1095     mailinglist (will NOT yet fix the issue). -CG
   1096 
   1097 Sun 26 Jul 2020 01:56:54 PM CEST
   1098     Add MHD_create_response_from_pipe() to allow creating a response based
   1099     on data read from a pipe. -CG
   1100 
   1101 Fri Jul 10 15:04:51 CEST 2020
   1102     Fixed Postprocessor URL-encoded parsing if '%' fell on boundary. -CG/MD
   1103 
   1104 Thu 02 Jul 2020 09:56:23 PM CEST
   1105     Fixed return type of MHD_queue_basic_auth_fail_response. -CA/CG
   1106 
   1107 Sun 28 Jun 2020 09:36:01 PM CEST
   1108     Fix buffer overflow issue in URL parser.
   1109     Releasing libmicrohttpd 0.9.71. -CG
   1110 
   1111 Tue 16 Jun 2020 08:44:22 PM CEST
   1112     Add logic to try again if GNUtls uncork() fails. -CG
   1113 
   1114 Wed 10 Jun 2020 09:44:29 PM CEST
   1115     Fixed PostProcessor bug discovered by MD, which given certain parser
   1116     boundaries caused the returned values to be wrong. -CG/MD
   1117 
   1118 Wed 08 Apr 2020 10:53:01 PM CEST
   1119     Introduce `enum MHD_Result` for #MHD_YES/#MHD_NO to avoid using 'int' so much.
   1120     Note that this change WILL cause compiler warnings until (most) MHD callbacks
   1121     in application code change their return type from 'int' to 'enum MHD_Result'.
   1122     That said, avoiding possible confusions of different enums is going to make
   1123     the code more robust in the future. For conditional compilation, test
   1124     for "MHD_VERSION >= 0x00097002". -CG
   1125 
   1126 Tue 07 Apr 2020 02:58:39 PM BRT
   1127     Fixed #5501 (Added example for how to provide a tiny threaded websocket server). -SC
   1128 
   1129 Tue 31 Mar 2020 02:36:40 PM BRT
   1130     Fixed #6142 (applied several spelling fixes). -DKG/-SC
   1131 
   1132 Sat 07 Mar 2020 05:20:33 PM CET
   1133     Fixed #6090 (misc. severe socket handling bugs on OS X). -CG
   1134 
   1135 Sat 08 Feb 2020 09:12:54 PM CET
   1136     Fixed 100-continue handling for PATCH method (#6068).
   1137     Fixed FTBFS from wrong #endif position for certain builds (#6025).
   1138     Fixed connection overflow issue when combining MHD_USE_NO_LISTEN_SOCKET
   1139     with MHD_USE_THREAD_PER_CONNECTION (#6036).
   1140     Updated m4 script to fix FTBFS when using -Werror=unused-but-set-parameter (#6078).
   1141     Releasing libmicrohttpd 0.9.70. -CG
   1142 
   1143 Thu Dec 26 14:43:27 CET 2019
   1144     Adding fix for urlencoding of keys without values in
   1145     post-processor logic. -CG
   1146 
   1147 Tue 24 Dec 2019 03:32:18 PM CET
   1148     Adding patch from Ethan Tuttle with test case for urlencoding
   1149     in post-processor for keys without values. -CG/ET
   1150 
   1151 Sun 15 Dec 2019 02:12:02 PM CET
   1152     Fix send() call (affects Mac OS X). #5977 -CG/fbrault
   1153     Releasing libmicrohttpd 0.9.69. -CG
   1154 
   1155 Fri 29 Nov 2019 11:22:25 PM CET
   1156     If application suspends a connection before we could send 100 CONTINUE,
   1157     give application another shot at queuing a reply before the upload begins. -CG
   1158 
   1159 Sat 26 Oct 2019 06:53:05 PM CEST
   1160     Fix regression where MHD would fail to return an empty response
   1161     when used with HTTPS.
   1162     Releasing libmicrohttpd 0.9.68. -CG/TR
   1163 
   1164 Fri 25 Oct 2019 02:31:59 PM CEST
   1165     Introduce MHD_RF_INSANITY_HEADER_CONTENT_LENGTH. -CG
   1166 
   1167 Thu 17 Oct 2019 04:50:52 PM CEST
   1168     Integrate 0-byte send() method for uncorking for old FreeBSD/OS X
   1169     systems into new mhd_send.c logic for uncorking.
   1170     Releasing libmicrohttpd 0.9.67. -CG
   1171 
   1172 Fri 18 Aug 2019 00:00:00 PM UTC
   1173     Fixes and optimizations for the setsockopt handling:
   1174     * Added: MHD_UPGRADE_ACTION_CORK_ON and MHD_UPGRADE_ACTION_CORK_OFF
   1175       to enum MHD_UpgradeAction (turn corking on/off on the underlying
   1176       socket).
   1177     * Use calls and flags native to the system for corking and
   1178       other operations, tested with performance improvements on
   1179       FreeBSD, Debian Linux, NetBSD, and cygwin. In particular,
   1180       this adds selective usage of MSG_MORE, NODELAY, TCP_NOPUSH,
   1181       TCP_CORK. -ng0
   1182 
   1183 Fri 09 Aug 2019 10:07:27 AM CEST
   1184     Copy compiler and linker hardening flags from GNUnet (updating
   1185     configure.ac). -CG
   1186 
   1187 Thu 01 Aug 2019 01:23:36 PM CEST
   1188     Releasing libmicrohttpd 0.9.66. -CG
   1189 
   1190 Thu 01 Aug 2019 12:53:49 AM CEST
   1191     Fix issue with discarding unhandled upload data discovered
   1192     by Florian Dold. -CG
   1193 
   1194 Mon 29 Jul 2019 08:01:50 PM CEST
   1195     Fix hanging situation with large transmission over upgraded
   1196     (i.e. Web socket) connection with epoll() and HTTPS enabled
   1197     (as reported by Viet on the mailinglist). -CG
   1198 
   1199 Thu 25 Jul 2019 02:40:12 PM CEST
   1200     Fixing regression introduced in cc5032b85 (bit mask matching
   1201     of the header kinds in MHD_lookup_connection_value()), as
   1202     reported by Jose Bollo on the mailinglist. -CG/JB
   1203 
   1204 Tue Jul 16 19:56:14 CEST 2019
   1205     Add MHD_OPTION_HTTPS_CERT_CALLBACK2 to allow OCSP stapling
   1206     and MHD_FEATURE_HTTPS_CERT_CALLBACK2 to check for. -TR
   1207 
   1208 Fri Jul 05 2019 22:30:40 MSK
   1209 	Releasing libmicrohttpd 0.9.65. -EG
   1210 
   1211 Sun Jun 23 2019 21:27:43 MSK
   1212 	Many fixes and improvements for connection-specific memory pool:
   1213 	* Added asserts;
   1214 	* Added testing of reallocation;
   1215 	* Reallocation code rewritten to avoid extra allocation, when
   1216 	  possible to reuse already allocated memory;
   1217 	* Large memory pools aligned to system page size;
   1218 	* Large memory pools on W32 are cleared more securely after use,
   1219 	  optimised usage of system memory.
   1220 	Better handled connection's memory shortage situations:
   1221 	* error response could be sent to client even if all buffer space
   1222 	  was used;
   1223 	* if buffer space become low when receiving, do not allocate last
   1224 	  buffer space and use small receive blocks instead.
   1225 	Improved sending speed by using all available buffer space for
   1226 	sending. -EG
   1227 
   1228 Sun Jun 09 2019 20:27:04 MSK
   1229 	Releasing libmicrohttpd 0.9.64. -EG
   1230 
   1231 Sun Jun 09 2019 20:03:16 MSK
   1232 	Updated HTTP headers, methods and status codes from registries,
   1233 	Added scripts to import new headers, methods and status codes from
   1234 	registries,
   1235 	Minor doxyget comment fix,
   1236 	Added missing MSVS project files to tarball.
   1237 	Reodered includes in microhttpd.h -EG
   1238 
   1239 Mon 03 Jun 2019 11:45:52 PM CEST
   1240 	Apply MHD_-prefix to hash functions, even if they are not in the
   1241 	officially exported API. -CG/DB
   1242 
   1243 Sun Jun 02 01:52:11 MSK 2019
   1244 	Support usage of SOCK_NOSIGPIPE on Solaris 11.4 and NetBSD 7+,
   1245 	finally avoid SIGPIPE on Solaris. -EG
   1246 
   1247 Sat Jun 01 22:51:50 MSK 2019
   1248 	Do not report errors if AF_UNIX socket is used on *BSD. -EG
   1249 
   1250 Thu May 30 23:32:09 MSK 2019
   1251 	Improved detection of 'getsockname()' in configure.
   1252 	Avoided using 'getsockname()' in code if not detected. -EG
   1253 
   1254 Sun May 26 23:32:49 MSK 2019
   1255 	Fixed some tests on W32. -EG
   1256 
   1257 Sun May 26 23:05:42 MSK 2019
   1258 	Better detection of sockaddr member in configure, fixed build on *BSD,
   1259 	Fixed compiler warnings,
   1260 	Updated and fixed libcurl tests. -EG
   1261 
   1262 Tue May 21 22:12:43 MSK 2019
   1263 	Fixed doxygen comments,
   1264 	Avoid dropping 'const' qualifier in macros,
   1265 	Fixed some compiler warnings,
   1266 	Properly support automatic port detections on some platforms,
   1267 	Added checks for too long TLS parameters strings. -EG
   1268 
   1269 Tue May 21 17:52:48 MSK 2019
   1270 	Spelling fixes. -EG
   1271 
   1272 Mon May 20 15:39:35 MSK 2019
   1273 	Compiler warning fixes. -EG/CG
   1274 	Fixed example for non-64bits platforms. -EG
   1275 
   1276 Wed May 15 23:51:49 MSK 2019
   1277 	Optimized and improved processing speed by using precalculated and
   1278 	already calculated lengths of strings. -EG
   1279 
   1280 Wed May 15 14:54:00 MSK 2019
   1281 	Fixed build from source on GNU Hurd. -EG
   1282 
   1283 Mon May  6 11:58:00 MSK 2019
   1284 	Updated README and COPYING files. MHD remains LGPLv2.1-licensed. -EG
   1285 
   1286 Fri May  3 20:08:00 MSK 2019
   1287 	Store connection's keys and values with sizes;
   1288 	Speedup keys search be comparing key length first;
   1289 	Added functions for working with keys and values with binary zeros;
   1290 	Fixed test_postprocessor_amp to fail on problems. -EG
   1291 
   1292 Wed May  1 16:40:00 MSK 2019
   1293 	Reverted change of MHD_KeyValueIterator, implemented MHD_KeyValueIteratorN
   1294 	with sizes for connection's key and value to get keys and values
   1295 	with binary zeros. -EG
   1296 
   1297 Mon 29 Apr 2019 01:26:39 AM BRT
   1298 	Fixed signed/unsigned comparison in example http_chunked_compression.c. -SC/TR
   1299 
   1300 Sun Apr 21 16:40:00 MSK 2019
   1301 	Improved compatibility with MSVC compilers;
   1302 	Fixed MHD compilation by Clang/LLVM in VS;
   1303 	Used MSVC intrinsics for bit rotations and bytes swap;
   1304 	Added project files for VS2019. -EG
   1305 
   1306 Fri Apr 19 23:00:00 MSK 2019
   1307 	Rewritten SHA-256 calculations from scratch to avoid changing LGPL version;
   1308 	Added usage of GCC/Clang built-ins for bytes swap to significantly improve
   1309 	speed of MD5 and SHA-256 calculation on platforms with known endianness.
   1310 	Added test for SHA-256 calculations. -EG
   1311 
   1312 Wed Apr 17 20:52:00 MSK 2019
   1313 	Refactoring of mhd5.c: optimized, dead code removed;
   1314 	Faster MD5 calculation on little endian platforms;
   1315 	Bit manipulations moved to separate header file.
   1316 	Added tests for MD5 calculations. -EG
   1317 
   1318 Mon 15 Apr 2019 05:33:52 PM CEST
   1319 	Add MHD_USE_POST_HANDSHAKE_AUTH_SUPPORT and
   1320 	MHD_USE_INSECURE_TLS_EARLY_DATA flags. -CG
   1321 
   1322 Thu Apr 11 11:37:00 MSK 2019
   1323 	Fixed MSVC 'Release' builds;
   1324 	Fixed usage of MSVC's assert. -EG
   1325 
   1326 Wed Apr 10 14:31:00 MSK 2019
   1327 	Improved shell compatibility for 'bootstrap', removed bash-ism.
   1328 	Added wrapper script 'autogen.sh'. -EG
   1329 
   1330 Mon 08 Apr 2019 03:06:05 PM CEST
   1331 	Fix close() checks as suggested by MK on the mailinglist
   1332         (#3926). -MK/CG
   1333 
   1334 Wed 20 Mar 2019 10:20:24 AM CET
   1335 	Adding additional "value_length" argument to MHD_KeyValueIterator
   1336 	callback to support binary zeros in values.  This is done in a
   1337 	backwards-compatible way, but may require adding a cast to existing
   1338 	code to avoid a compiler warning. -CG
   1339 
   1340 Sun Feb 10 21:00:37 BRT 2019
   1341 	Added example for how to compress a chunked HTTP response. -SC
   1342 
   1343 Sun 10 Feb 2019 05:03:44 PM CET
   1344 	Releasing libmicrohttpd 0.9.63. -CG
   1345 
   1346 Sat 09 Feb 2019 01:51:02 PM CET
   1347 	Extended test_get to test URI logging and query string parsing
   1348 	to avoid regression fixed in previous patch in the future. -CG
   1349 
   1350 Thu Feb  7 16:16:12 CET 2019
   1351 	Preliminary patch for the raw query string issue, to be tested. -CG
   1352 
   1353 Tue Jan  8 02:57:21 BRT 2019
   1354 	Added minimal example for how to compress HTTP response. -SC
   1355 
   1356 Wed Dec 19 00:06:03 CET 2018
   1357 	Check for GNUTLS_E_AGAIN instead of GNUTLS_E_INTERRUPTED when
   1358 	giving up on a TLS connection. -LM/CG
   1359 
   1360 Thu Dec 13 22:48:14 CET 2018
   1361 	Fix connection timeout logic if in thread-per-connection mode the
   1362 	working thread takes longer than the timeout to queue the response. -CG
   1363 
   1364 Tue Dec 11 09:58:32 CET 2018
   1365 	Add logic to avoid VLA arrays with compilers that do not support them. -CG
   1366 
   1367 Sat Dec  8 23:15:53 CET 2018
   1368 	Fixed missing WSA_FLAG_OVERLAPPED which can cause W32 to block on
   1369 	socket races when using threadpool. (See very detailed description
   1370 	of the issue in the libmicrohttpd mailinglist post of today.) -JM
   1371 
   1372 Sat Dec  8 22:53:56 CET 2018
   1373 	Added test for RFC 7616 and documented new API.
   1374 	Releasing libmicrohttpd 0.9.62. -CG
   1375 
   1376 Sat Dec  8 17:34:58 CET 2018
   1377 	Adding support for RFC 7616, experimental, needs
   1378 	testing and documentation still! -CG
   1379 
   1380 Fri Dec  7 12:37:17 CET 2018
   1381 	Add option to build MHD without any threads
   1382 	and MHD_FEATURE_THREADS to test for it.  -CG
   1383 
   1384 Thu Dec  6 13:25:08 BRT 2018
   1385 	Renamed all occurrences from _model(s)_ to _mode(s)_. -SC
   1386 
   1387 Thu Dec  6 12:50:11 BRT 2018
   1388 	Optimized the function MHD_create_response_from_callback() for
   1389 	Windows by increasing its internal buffer size and allowed to customize
   1390 	it via macro MHD_FD_BLOCK_SIZE. -SC
   1391 
   1392 Thu Dec  6 02:11:15 BRT 2018
   1393 	Referenced the gnutls_load_file() function in the HTTPs examples. -SC
   1394 
   1395 Wed Dec  5 18:08:59 CET 2018
   1396 	Fix regression causing URLs to be unescaped twice. -CG
   1397 
   1398 Sun Nov 18 13:08:11 CET 2018
   1399 	Parse arguments with (properly) escaped URLs correctly.
   1400 	(making things work with recent cURL changes, #5473).
   1401 	Replace sprintf with snprintf in testcases.
   1402 	Releasing libmicrohttpd 0.9.61. -CG
   1403 
   1404 Wed Nov 14 14:01:21 CET 2018
   1405 	Fix build issue with GnuTLS < 3.0. -CG
   1406 
   1407 Mon Nov 12 19:50:43 CET 2018
   1408 	Fix #5473 (test case failure due to change in libcurl). -eworm
   1409 
   1410 Thu Nov  8 14:53:27 CET 2018
   1411 	Add MHD_create_response_from_buffer_with_free_callback. -CG
   1412 
   1413 Tue Nov  6 19:43:47 CET 2018
   1414 	Upgrading to gettext 0.19.8.
   1415 	Releasing libmicrohttpd 0.9.60. -CG
   1416 
   1417 Thu Nov  1 16:29:59 CET 2018
   1418 	Enable using epoll() without listen socket. -JB
   1419 
   1420 Sat Oct 20 12:44:16 CEST 2018
   1421 	In thread-per-connection mode, signal main thread for
   1422 	thread termination for instant clean-up and application
   1423 	notification about closed connections. -CG
   1424 
   1425 Tue Oct 16 20:43:41 CEST 2018
   1426 	Add MHD_RF_HTTP_VERSION_1_0_RESPONSE option to make MHD
   1427 	act more like an HTTP/1.0 server. -GH
   1428 
   1429 Fri Oct  5 18:44:45 CEST 2018
   1430 	MHD_add_response_header() now prevents applications from
   1431 	setting a "Transfer-Encoding" header to values other than
   1432 	"identity" or "chunked" as other transfer encodings are
   1433 	not supported by MHD. (Note that usually MHD will pick the
   1434 	transfer encoding correctly automatically, but applications
   1435 	can use the header to force a particular behavior.)
   1436 	Fixing #5411 (never set Content-length if Transfer-Encoding
   1437 	is given). -CG
   1438 
   1439 Sat Jul 14 11:42:15 CEST 2018
   1440 	Add MHD_OPTION_GNUTLS_PSK_CRED_HANDLER to allow use of PSK with
   1441 	TLS connections. -CG/TM
   1442 
   1443 Sat Jul 14 11:03:37 CEST 2018
   1444 	Integrate patch for checking digest authentication based on
   1445 	a digest, allowing servers to store passwords only hashed.
   1446 	Adding new function MHD_digest_auth_check_digest(). -CG/DB
   1447 
   1448 Sat Mar 10 12:15:35 CET 2018
   1449 	Upgrade to gettext-0.19.8.1. Switching to more canonical
   1450 	gettext integration. -CG
   1451 
   1452 Fri Mar  2 21:44:24 CET 2018
   1453 	Ensure MHD_RequestCompletedCallback is always called from
   1454 	the correct thread (even on shutdown and for upgraded connections). -CG
   1455 
   1456 Tue Feb 27 23:27:02 CET 2018
   1457 	Ensure MHD_RequestCompletedCallback is also called for
   1458 	upgraded connections. -CG
   1459 
   1460 Fri Feb 16 03:09:33 CET 2018
   1461 	Fixing #5278 as suggested by reporter. -CG/texec
   1462 
   1463 Thu Feb  1 10:12:22 CET 2018
   1464 	Releasing GNU libicrohttpd 0.9.59. -CG
   1465 
   1466 Thu Feb  1 08:39:50 CET 2018
   1467 	Fix masking operation. -CG/silvioprog
   1468 
   1469 Mon Jan 29 17:33:54 CET 2018
   1470 	Fix deadlock when failing to prepare chunked response
   1471 	(#5260). -CG/ghaderer
   1472 
   1473 Thu Jan  4 12:24:33 CET 2018
   1474 	Fix __clang_major__ related warnings for non-clang
   1475 	compilers reported by Tim on the mailinglist. -CG
   1476 
   1477 Mon Dec 11 17:11:00 MSK 2017
   1478 	Fixed tests on platforms with huge number of CPUs.
   1479 	Doxygen configuration was updated.
   1480 	Various doxygen fixes. -EG
   1481 
   1482 Mon Dec 07 21:08:00 MSK 2017
   1483 	Releasing GNU libmicrohttpd 0.9.58. -EG
   1484 
   1485 Mon Dec 07 16:01:00 MSK 2017
   1486 	Fixed HTTPS tests on modern platforms. -EG
   1487 
   1488 Mon Dec 04 15:43:00 MSK 2017
   1489 	Minor documentation installation fixes. -EG
   1490 
   1491 Mon Nov 27 22:58:38 CET 2017
   1492 	Tolerate AF_UNIX when trying to determine our binding port
   1493 	from socket.  Use `sockaddr_storage` instead of trying to
   1494 	guess the sockaddr type before calling getsockname(). -CG
   1495 
   1496 Mon Nov 27 22:24:00 MSK 2017
   1497 	Releasing GNU libmicrohttpd 0.9.57. -EG
   1498 
   1499 Mon Nov 27 21:36:00 MSK 2017
   1500 	Updated README. -EG
   1501 
   1502 Mon Nov 27 18:37:00 MSK 2017
   1503 	Corrected names in W32 DLL resources.
   1504 	Reordered and clarified configure summary message.
   1505 	Additional compiler warning mutes for builds with various configure
   1506 	parameters.
   1507 	Fixed tests on Cygwin.
   1508 	Used larger SETSIZE for Cygwin (same value as for native W32).
   1509 	Minor fixes for Cygwin.
   1510 	Added configure parameter to force disable usage of sendfile().
   1511 	Minor testsuite fixes.
   1512 	Really fixed builds with optimisation for size. -EG
   1513 
   1514 Sat Nov 25 18:37:00 MSK 2017
   1515 	Fixed build with optimisation for size. -EG
   1516 
   1517 Fri Nov 24 20:14:02 CET 2017
   1518 	Releasing GNU libmicrohttpd 0.9.56. -CG
   1519 
   1520 Thu Nov 23 17:40:00 MSK 2017
   1521 	Added MHD_FEATURE_SENDFILE enum value and report. -EG
   1522 
   1523 Thu Nov 23 08:56:00 MSK 2017
   1524 	Fixed receiving large requests in TLS mode with epoll.
   1525 	Improved GnuTLS and libgcrypt detection in configure, do not ignore
   1526 	flags in GNUTLS_{CFLAGS,LIBS} variables.
   1527 	Added special trick for Solaris/Openindiana to find GnuTLS-3 with
   1528 	right bitness.
   1529 	Added support for Solaris sendfile(3) function.
   1530 	Fixed dataraces with thread ID on W32 and pthread. Now check for
   1531 	correct thread in MHD_queue_response() works correctly.
   1532 	Fixed and silenced compiler warnings in tests and examples.
   1533 	Removed usage of TLS flags in examples where TLS is not required.
   1534 	Added support for MultiSSL in https tests with libcurl >= 7.56.0.
   1535 	Improved detection of OFF_T_MAX, SIZE_MAX. Added macros for
   1536 	SSIZE_MAX in mhd_limits.h. There are some platforms that really
   1537 	require those macros.
   1538 	Added support for Darwin's sendfile() function.
   1539 	Updated .gitignore files.
   1540 	Reworked mhd_sys_extentions.m4 with better support of modern
   1541 	platforms, more reliable detection of required macros, and
   1542 	detection of disabling of system-specific features by
   1543 	_XOPEN_SOURCE macro. -EG
   1544 
   1545 Wed Nov  1 20:43:00 MSK 2017
   1546 	Mixed and muted many compiler warnings. Now GCC's flags
   1547 	-Wall -Wextra could be used for building.
   1548 	Fixed compilation of examples without libmagic.
   1549 	Better detection of libgnutls in configure.
   1550 	Reworked launch of nested configure in "po" directory to
   1551 	prevent useless reconfiguration.
   1552 	Fixed some wrong asserts.
   1553 	Enabled "test_options" test.
   1554 	Use "test_start_stop" without libcurl.
   1555 	Use chunks with sendfile() to prevent locking thread for
   1556 	single connection with large file.
   1557 	Added support for FreeBSD's sendfile with additional
   1558 	optimisations for FreeBSD 11.
   1559 	Refactoring and improvements for MHD_start_daemon_va() and
   1560 	MHD_stop_daemon().
   1561 	Fixed testing with GnuTLS >= 3.6.0. -EG
   1562 
   1563 Mon Oct  9 22:38:07 CEST 2017
   1564 	Add MHD_free() to allow proper free()-ing of username/password
   1565 	data returned via MHD_digest_auth_get_username() or
   1566 	MHD_basic_auth_get_username_password() on Windows. -CG
   1567 
   1568 Tue Sep 26 14:00:58 CEST 2017
   1569 	Fixing race involving setting "at_limit" flag. -CG
   1570 
   1571 Tue Sep 08 21:39:00 MSK 2017
   1572 	Fixed build of examples when MHD build with non-pthread lib.
   1573 	MHD_queue_response(): added check for using in correct thread.
   1574 	Fixed sending responses larger 16 KiB in TLS mode with epoll.
   1575 	Improved doxy for MHD_get_timeout() and related functions.
   1576 	Minor internal refactoring. -EG
   1577 
   1578 Tue Jul 23 11:32:00 MSK 2017
   1579 	Updated chunked_example.c to provide real illustration of usage of
   1580 	chunked encoding. -EG
   1581 
   1582 Thu Jul 13 21:41:00 MSK 2017
   1583 	Restored SIGPIPE suppression in TLS mode.
   1584 	Added new value MHD_FEATURE_AUTOSUPPRESS_SIGPIPE so application could
   1585 	check whether SIGPIPE handling is required.
   1586 	Used GNUTLS_NONBLOCK for TLS sessions. -EG
   1587 
   1588 Tue Jun 20 23:52:00 MSK 2017
   1589 	Libgcrypt is now optional and required only for old GnuTLS versions. -EG
   1590 
   1591 Wed Jun 14 21:42:00 MSK 2017
   1592 	Added support for debug assert() and new configure parameter
   1593 	--enable-asserts for debug builds.
   1594 	Removed non-functional Symbian support. -EG
   1595 
   1596 Mon Jun 05 23:34:00 MSK 2017
   1597 	More internal refactoring:
   1598 	merged MHD_tls_connection_handle_read/write() with non-TLS version,
   1599 	reduced and unified number of layers for network processing (before
   1600 	refactoring MHD_tls_connection_handle_read->MHD_connection_handle_read->
   1601 	do_read->recv_tls_adapter->GnuTLS->recv_param_adapter - 5 MHD layers;
   1602 	after refactoring MHD_connection_handle_read->recv_tls_adapter->GnuTLS -
   1603 	2 MHD layers),
   1604 	simplified and removed dead code from
   1605 	MHD_connection_handle_read/write() without functional change. -EG
   1606 
   1607 Mon Jun 05 22:20:00 MSK 2017
   1608 	Internal refactoring:
   1609 	used TCP sockets directly with GnuTLS (performance improvement),
   1610 	moved some connection-related code from daemon.c to
   1611 	connection.c/connection_https.c,
   1612 	removed hacks around sendfile() and implemented correct support of
   1613 	sendfile(),
   1614 	removed do_read() and do_write() to reduce number of layer around send()
   1615 	and recv() and to improve readability and maintainability of code,
   1616 	implemented separate tracking of TLS layer state, independent of HTTP
   1617 	connection stage. -EG
   1618 
   1619 Sun Jun 04 15:02:00 MSK 2017
   1620 	Improved thread-safety of MHD_add_connection() and
   1621 	internal_add_connection(), minor optimisations. -EG
   1622 
   1623 Sun May 28 23:26:00 MSK 2017
   1624 	Releasing GNU libmicrohttpd 0.9.55. -EG
   1625 
   1626 Sun May 21 18:48:00 MSK 2017
   1627 	Fixed build with disabled "UPGRADE".
   1628 	Fixed possible null-dereference in HTTPS test.
   1629 	Fixed compiler warning in process_request_body(), minor optimizations.
   1630 	Do not allow suspend of "upgraded" connections.
   1631 	Fixed returned value for MHD_CONNECTION_INFO_CONNECTION_SUSPENDED.
   1632 	Fixed removal from timeout lists of non-existing connections in
   1633 	cleanup_connection().
   1634 	Fixed double locking of mutex. -EG
   1635 
   1636 Sun May 14 15:05:00 MSK 2017
   1637 	Fixed resuming connections and closing upgraded connections in select()
   1638 	mode with thread-per-connection. -EG
   1639 
   1640 Sun May 14 14:49:00 MSK 2017
   1641 	Removed extra call to resume connections in MHD_run().
   1642 	Handle resumed connection without delay in epoll mode.
   1643 	Update states of resumed connection after resume in thread-per-connection
   1644 	mode.
   1645 	Fixed resuming connections and closing upgraded connections in poll()
   1646 	mode with thread-per-connection. -EG
   1647 
   1648 Thu May 11 22:37:00 MSK 2017
   1649 	Faster start really processing data in resumed connections. -EG
   1650 
   1651 Thu May 11 14:24:00 MSK 2017
   1652 	Do not add any "Connection" headers for "upgrade" connections. -EG
   1653 
   1654 Wed May 10 23:09:00 MSK 2017
   1655 	Resume resuming connection before other processing in external polling
   1656 	mode. -EG
   1657 
   1658 Tue May  9 23:16:00 MSK 2017
   1659 	Fixed: Do not add "Connection: Keep-Alive" header for "upgrade"
   1660 	connections. -EG
   1661 
   1662 Tue May  9 21:01:00 MSK 2017
   1663 	Fixed: check all "Connection" headers of request for "Close" and "Upgrade"
   1664 	tokens instead of using only first "Connection" header with full string
   1665 	match. -EG
   1666 
   1667 Tue May  9 12:28:00 MSK 2017
   1668 	Revert: continue match footers in MHD_get_response_header() for backward
   1669 	compatibility. -EG
   1670 
   1671 Mon May  8 19:30:00 MSK 2017
   1672 	Fixed: use case-insensitive matching for header name in
   1673 	MHD_get_response_header(), match only headers (not footers). -EG
   1674 
   1675 Fri May  5 20:57:00 MSK 2017
   1676 	Fixed null dereference when connection has "Upgrade" request and
   1677 	connection is not upgraded.  -JB/EG
   1678 	Better handle Keep-Alive/Close. -EG
   1679 
   1680 Tue May  2 18:37:53 CEST 2017
   1681 	Update manual. -CG
   1682 	Add MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE.
   1683 	Releasing GNU libmicrohttpd 0.9.54. -CG
   1684 
   1685 Thu Apr 27 22:31:00 CEST 2017
   1686 	Replaced flags MHD_USE_PEDANTIC_CHECKS and MHD_USE_PERMISSIVE_CHECKS by
   1687 	single option MHD_OPTION_STRICT_FOR_CLIENT. Flag MHD_USE_PEDANTIC_CHECKS
   1688 	is still supported. -EG
   1689 
   1690 Tue Apr 26 15:11:00 CEST 2017
   1691 	Fixed shift in HTTP reasons strings.
   1692 	Added test for HTTP reasons strings. -EG
   1693 
   1694 Tue Apr 25 19:11:00 CEST 2017
   1695 	Allow flag MHD_USE_POLL with MHD_USE_THREAD_PER_CONNECTION and without
   1696 	flag MHD_USE_INTERNAL_POLLING_THREAD for backward compatibility. -EG
   1697 
   1698 Mon Apr 24 17:29:45 CEST 2017
   1699 	Enforce RFC 7230's rule on no whitespace by default,
   1700 	introduce new MHD_USE_PERMISSIVE_CHECKS to disable. -CG
   1701 
   1702 Sun Apr 23 20:05:44 CEST 2017
   1703 	Enforce RFC 7230's rule on no whitespace in HTTP header
   1704 	field names if MHD_USE_PEDANTIC_CHECKS is set. -CG
   1705 
   1706 Sun Apr 23 19:20:33 CEST 2017
   1707 	Replace remaining occurrences of sprintf() with
   1708 	MHD_snprintf_(). Thanks to Ram for pointing this out. -CG
   1709 
   1710 Sat Apr 22 20:39:00 MSK 2017
   1711 	Fixed builds in Linux without epoll.
   1712 	Check for invalid --with-thread= configure parameters.
   1713 	Fixed support for old libgcrypt on W32 with W32 threads. -EG
   1714 
   1715 Tue Apr 11 22:17:00 MSK 2017
   1716 	Releasing GNU libmicrohttpd 0.9.53. -EG
   1717 
   1718 Mon Apr 10 19:50:20 MSK 2017
   1719 	HTTPS tests: skip tests instead of failing if HTTPS is not supported by
   1720 	libcurl.
   1721 	HTTPS tests: fixed return values so testsuite is able to correctly
   1722 	interpret it.
   1723 	Fixed ignored result of epoll test in test_https_get_select. -EG
   1724 
   1725 Thu Apr 06 23:02:07 MSK 2017
   1726 	Make zzuf tests compatible with *BSD platforms. -EG
   1727 
   1728 Thu Apr 06 22:14:22 MSK 2017
   1729 	Added warning for hypothetical extra large timeout.
   1730 	Fixed incorrect timeout calculation under extra rare conditions.
   1731 	Fixed accidental usage of IPv6 in testsuite in specific conditions. -EG
   1732 
   1733 Wed Apr 05 14:14:22 MSK 2017
   1734 	Updated autoinit_funcs.h to latest upstream version with proper support of
   1735 	Oracle/Sun compiler. -EG
   1736 
   1737 Wed Apr 05 12:53:26 MSK 2017
   1738 	Fixed some compiler warnings.
   1739 	Fixed error snprintf() errors detection in digestauth.c.
   1740 	Converted many run-time 'strlen()' to compile-time calculations. -EG
   1741 
   1742 Sun Mar 26 13:49:01 MSK 2017
   1743 	Internal refactoring for simplification and unification.
   1744 	Minor optimizations and minor fixes.
   1745 	MHD_USE_ITC used again in thread pool mode. -EG
   1746 
   1747 Sat Mar 25 20:58:24 CET 2017
   1748 	Remove dead MHD_strx_to_sizet-functions and associated
   1749 	test cases from code. -CG
   1750 
   1751 Sat Mar 25 20:40:10 CET 2017
   1752 	Allow chunk size > 16 MB (up to 2^64-1). Ignore
   1753 	chunk extensions instead of triggering an error.
   1754 	(fixes #4967). -CG
   1755 
   1756 Tue Mar 25 20:59:18 MSK 2017
   1757 	Check for invalid combinations of flags and options in
   1758 	MHD_start_daemon(). -EG
   1759 
   1760 Tue Mar 21 13:51:04 CET 2017
   1761 	Use "-lrt" to link libmicrohttpd if we are using
   1762 	clock_gettime() as needed by glibc < 2.17. -CG
   1763 
   1764 Tue Mar 21 13:42:07 CET 2017
   1765 	Allow chaining of suspend-resume calls withuot
   1766 	the application processing data from the network. -CG
   1767 
   1768 Mon Mar 20 0:51:24 MSK 2017
   1769 	Added autoconf module for detection whatever shutdown of listening socket
   1770 	trigger select. This is only reliable method to use such feature as some
   1771 	platforms change behaviour from version to version. -EG
   1772 
   1773 Sun Mar 19 13:57:30 MSK 2017
   1774 	Rewritten logic of handling "upgraded" TLS connections in epoll mode:
   1775 	used edge trigger instead of level trigger,
   1776 	upgraded "ready" connection are stored in DL-list,
   1777 	fixed handling of more than 128 ready connections,
   1778 	fixed busy-waiting for idle "upgraded" TLS connections. -EG
   1779 
   1780 Fri Mar 17 10:45:31 MSK 2017
   1781 	If read buffer is full, MHD need to receive remote data and application
   1782 	suspended connection, do not fail while connection is suspended and give
   1783 	application one more chance to read data from buffer once connection is
   1784 	resumed. -EG
   1785 
   1786 Thu Mar 16 23:45:29 MSK 2017
   1787 	Allow again to run MHD in external epoll mode by
   1788 	MHD_run_from_select() - this allow unification of user code
   1789 	and produce no harm for performance. Especially useful with
   1790 	MHD_USE_AUTO flag. -EG
   1791 
   1792 Thu Mar 16 23:12:07 MSK 2017
   1793 	Idle connection should be disconnected *after* "timeout" number of
   1794 	second, not *before* this number. -EG/VT
   1795 
   1796 Thu Mar 16 22:31:54 MSK 2017
   1797 	Unified update of last activity on connections.
   1798 	Update last activity only if something is really transmitted.
   1799 	Update last activity each time when something is transmitted.
   1800 	Removed early duplicated check for timeout on HTTPS connections.
   1801 	Removed update of last active time for connections without timeout.
   1802 	Fixed reset of timeout timer on resumed connections.
   1803 	Fixed never-expired timeouts on HTTPS connections.
   1804 	Fixed thread-safety of MHD_set_connection_option(). -EG
   1805 
   1806 Thu Mar 16 21:05:08 MSK 2017
   1807 	Fixed minor bug resulted in slight slowdown of HTTPS connection
   1808 	handshake. -EG
   1809 
   1810 Thu Mar 16 20:35:59 MSK 2017
   1811 	Improved thread-safety for DL-lists. -EG
   1812 
   1813 Thu Mar 16 17:55:01 MSK 2017
   1814 	Fixed thread-safety of MHD_get_daemon_info() for
   1815 	MHD_DAEMON_INFO_CURRENT_CONNECTIONS. -EG
   1816 
   1817 Thu Mar 16 16:49:07 MSK 2017
   1818 	Added ability to get actual daemon flags via MHD_get_daemon_info().
   1819 	Fixed test_upgrade to work in request mode.
   1820 	Fixed compiler warnings in test_upgrade. -EG
   1821 
   1822 Wed Mar 15 23:29:59 MSK 2017
   1823 	Prevented socket read/write if connection is suspended.
   1824 	Added missing resets of 'connection->in_idle'.
   1825 	Reworked handling of suspended connection: ensure that
   1826 	connection is not disconnected by timeout, always
   1827 	updated read/write states right after suspending. -EG
   1828 
   1829 Wed Mar 15 21:02:26 MSK 2017
   1830 	Added new enum value MHD_CONNECTION_INFO_CONNECTION_TIMEOUT
   1831 	to get connection timeout by MHD_get_connection_info(). -EG
   1832 
   1833 Sat Mar 11 12:03:45 CET 2017
   1834 	Fix largepost example from tutorial to properly generate
   1835 	error pages. -CG
   1836 	Fix largepost example, must only queue replies either before upload
   1837 	happens or after upload is done, not while upload is ongoing
   1838 
   1839 Fri Mar 10 16:37:12 CET 2017
   1840 	Fix hypothetical integer overflow for very, very large
   1841 	timeout values. -CG
   1842 
   1843 Fri Mar 10 16:22:54 CET 2017
   1844 	Handle case that we do not listen at all more gracefully
   1845 	in MHD_start_daemon() and not pass '-1' to helper functions
   1846 	that expect a valid socket. -CG
   1847 
   1848 Tue Mar  7 12:11:44 BRT 2017
   1849 	Updates file `.gitignore`.
   1850 
   1851 Tue Mar  7 10:37:45 BRT 2017
   1852 	Updated the MHD_OPTION_URI_LOG_CALLBACK's documentation.
   1853 
   1854 Mon Mar  6 21:46:59 BRT 2017
   1855 	Added the i18n example fixing #4924. -SC
   1856 
   1857 Wed Mar 1 23:47:05 CET 2017
   1858 	Minor internal optimisations.
   1859 	Changed closure connection monitoring logic: now all connections are
   1860 	monitored for OOB data (which treated as error), connections are not
   1861 	monitored any more for incoming data if incoming data is not required for
   1862 	processing. except_fd_set is not optional now for MHD_get_fdset(),
   1863 	MHD_get_fdset2() and MHD_run_from_select().
   1864 	Improved connection processing in epoll mode: now connection can process
   1865 	both read and write each turn.
   1866 	Updated HTTP response codes; updated and added all missing standard HTTP
   1867 	headers names (and headers categories); updated and added all missing
   1868 	standard and additional HTTP methods. Now MHD return status
   1869 	MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE (431) instead of old
   1870 	MHD_HTTP_REQUEST_ENTITY_TOO_LARGE (413) for very long header.
   1871 	Reworked handling of data pending in TLS buffers, resolved busy-waiting
   1872 	if incoming data is pending in TLS buffers and connection is in
   1873 	LOOP_INFO_WRITE mode.
   1874 	Do not clear 'ready' flag in epoll mode if send()/recv() result is
   1875 	EINTERRUPTED.
   1876 	Better detection of unready connection state: used less number of calls of
   1877 	recv()/send() in epoll mode.
   1878 	Configure: do not run gcrypt and GnuTLS tests if HTTPS is disabled by
   1879 	configure parameter.
   1880 	Fixed wrong value returned by MHD_get_timeout().
   1881 	All double-linked lists now walked from tail to head. As new items are
   1882 	added to head, this result in more uniform processing time.
   1883 	Improved sockets errors handling in epoll mode.
   1884 	OOB data on 'upgraded' sockets is treated as error. -EG
   1885 
   1886 Thu Feb 16 11:20:05 CET 2017
   1887 	Replace tsearch configure check with code from gnulib. -CG
   1888 
   1889 Wed Feb 15 13:35:36 CET 2017
   1890 	Fixing a few very rare race conditions for thread-pool or
   1891 	thread-per-connection operations during shutdown.
   1892 	Various minor cosmetic improvements.
   1893 	Fixed #4884 and #4888 (solaris portability issues). -CG
   1894 
   1895 Wed Feb 08 22:33:10 MSK 2016
   1896 	Ported test_quiesce_stream to W32.
   1897 	Improved precompiler flags selection of OpenBSD.
   1898 	Fixed sending responses backed by files not supported by sendfile().
   1899 	Fixed thread safety for responses backed by file FD.
   1900 	Updated fileserver_example.
   1901 	Improved handling of 'upgraded' TLS forwarding in select() and poll()
   1902 	modes.
   1903 	Fixed processing of incoming TLS data in epoll mode if more than 128
   1904 	connections are active.
   1905 	Fixed accepting more than 128 incoming connection in epoll mode.
   1906 	Improved test_large_put, added poll() and epoll testing.
   1907 	Added test_large_put_inc for testing of incremental buffer processing.
   1908 	Rewritten epoll connection processing logic: handle all connection one
   1909 	time per turn instead of trying to handle all active connection until all
   1910 	pending data is dried. Result is more uniform connection processing
   1911 	period. -EG
   1912 
   1913 Wed Nov 23 15:24:10 MSK 2016
   1914 	Used SO_REUSEADDR (on non-W32) alongside with SO_REUSEPORT if option
   1915 	MHD_OPTION_LISTENING_ADDRESS_REUSE was set. -EG
   1916 
   1917 Wed Nov 23 12:48:23 MSK 2016
   1918 	Move all gettext-related staff to 'po' subdirectory.
   1919 	Excluded gettext files generation from normal build.
   1920 	Removed generated files from GIT. -EG
   1921 
   1922 Tue Nov 15 19:08:43 MSK 2016
   1923 	Fixed forwarding "upgraded" TLS connections for
   1924 	chunks sizes larger than buffer size. -EG
   1925 
   1926 Mon Nov 14 22:18:30 MSK 2016
   1927 	Fixed unintentional usage of SO_REUSEADDR on W32.
   1928 	Added support for SO_EXCLBIND on Solaris.
   1929 	Fixed using MHD with MHD_OPTION_LISTENING_ADDRESS_REUSE
   1930 	on Linux kernels before 3.9 (longterm 3.2 and 3.4
   1931 	are still supported). -EG
   1932 
   1933 Sun Nov 13 19:16:38 CET 2016
   1934 	Fixed a few race issues on suspend-resume in cases where the
   1935 	application uses threads even though MHD did not (or at least
   1936 	had no internal need for locking). Also fixed DLL handling of
   1937 	the timeout list, avoiding manipulating it for suspended
   1938 	connections.  Finally, eliminated calling application logic
   1939 	on suspended connections (which before could happen under
   1940 	certain circumstances). -CG
   1941 
   1942 Thu Nov 11 20:49:23 MSK 2016
   1943 	Added support for various forms of
   1944 	pthread_attr_setname_np() so thread names will be set
   1945 	more efficiently on certain platforms (Solaris, NetBSD etc.) -EG
   1946 
   1947 Thu Nov 10 21:50:35 MSK 2016
   1948 	Added rejection in MHD_start_daemon() of invalid combinations
   1949 	of daemon flags.
   1950 	Added MHD_USE_AUTO and MHD_USE_AUTO_INTERNAL_THREAD for
   1951 	automatic selection of polling function depending on
   1952 	platform capabilities and requested mode. -EG
   1953 
   1954 Thu Nov 10 17:49:56 MSK 2016
   1955 	Ported "upgrade" tests to W32 and other platforms, used
   1956 	"gnutls-cli" instead of "openssl" in tests, minor bugs
   1957 	fixed, added verbose reporting if requested.
   1958 	"Upgrade" processing - changed internal handling logic, improved
   1959 	and refactored, bugs fixed, fixed sigpipe on Darwin, added
   1960 	printing error to log, fixed compilation without HTTPS.
   1961 	Added 'configure' parameter "--disable-httpupgrade" for building
   1962 	minimal-sized MHD versions.
   1963 	Added feature check "MHD_FEATURE_UPGRADE".
   1964 	Responses destroyed (freed) earlier if possible.
   1965 	Added many remarks in code comments about thread safety.
   1966 	Some data races and other multithread-related issues are fixed,
   1967 	including usage of closed sockets (may resulted in accidental closing
   1968 	of wrong socket).
   1969 	SO_NOSIGPIPE is used on all platform which support it, not only
   1970 	on Darwin.
   1971 	Added support for suspending connections in thread-per-connection
   1972 	mode (itself almost useless, mostly to unify modes support).
   1973 	Fixed Inter-Thread Communication channel usage in epoll modes.
   1974 	Reworked daemon cleanups and handling MHD_stop_daemon(): resources
   1975 	are freed only by specific threads, data races and other fixes.
   1976 	Started usage of C99 standard 'bool' where supported with
   1977 	fallback to 'int'.
   1978 	Renamed many MHD flags. Now they are self-explainable and more
   1979 	obvious, like MHD_USE_INTERNAL_POLLING_THREAD instead of
   1980 	MHD_USE_SELECT_INTERNALLY. Old flag names are supported for
   1981 	backward compatibility.
   1982 	Improved processing of "fast" connections: now full sequence
   1983 	"read request - send reply headers - send reply body" is processed
   1984 	after single select()/poll(). If connection is slow, request is huge
   1985 	or response in not immediately ready - connection will be processed
   1986 	in "traditional" way.
   1987 	Added usage of "calloc()" where supported.
   1988 	Minor documentation fixes.
   1989 	Minor improvements and fixes. -EG
   1990 	"Upgrade" test fixes.
   1991 	Documentation updated.
   1992 	Added HTTP "Upgrade" example. -CG
   1993 
   1994 Mon Oct 17 19:08:18 CEST 2016
   1995 	Fixed misc. issues relating to upgrade.
   1996 	Releasing experimental 0.9.52. -CG
   1997 
   1998 Wed Oct 12 14:26:20 CEST 2016
   1999 	Migrated repository from Subversion to Git. -CG
   2000 
   2001 Tue Oct 11 18:09:56 CEST 2016
   2002 	Deprecated MHD_USE_SSL, use MHD_USE_TLS instead. -CG
   2003 
   2004 Tue Oct 11 18:14:40 MSK 2016
   2005 	Code internal refactoring: 'pipes' renamed to 'inter-thread
   2006 	communication (channels)/ITCs', as code can use different types
   2007 	of communications.
   2008 	Optimizations: ITCs now always created in non-blocking mode.
   2009 	Added configure parameter to choose ITC type.
   2010 	Updated documentation and comments.
   2011 	Minor errors fixed (related to heavy load). -EG
   2012 
   2013 Thu Sep 22 17:51:04 CEST 2016
   2014 	Implementing support for eventfd() instead of pipe() for
   2015 	signaling (on platforms that support it); fixing #3557. -CG
   2016 
   2017 Thu Sep 22 11:03:43 CEST 2016
   2018 	Simplify internal error handling logic by folding it into the
   2019 	MHD_socket_close_, MHD_mutex_lock_, MHD_mutex_unlock_ and
   2020 	MHD_mutex_destroy_ functions. -CG
   2021 
   2022 Tue Sep 13 22:20:26 MSK 2016
   2023 	Added autoconf macro to enable maximum platform
   2024 	features. Fixed compiling on Solaris. -EG
   2025 
   2026 Wed Sep  7 12:57:57 CEST 2016
   2027 	Fixing #4641. -Hawk
   2028 
   2029 Wed Sep  7 00:28:59 CEST 2016
   2030 	Adding remaining "_"-markups for i18n (#4614). -CG
   2031 
   2032 Tue Sep  6 23:39:56 CEST 2016
   2033 	Allow out-of-order nonces for digest authentication (#4636). -CG
   2034 
   2035 Tue Sep  6 21:29:09 CEST 2016
   2036 	Martin was right, "socket_context" should be "void *"
   2037 	in `union MHD_ConnectionInfo`.  -MS
   2038 
   2039 Sun Sep  4 18:16:32 CEST 2016
   2040 	Fixing potential memory leak (#4634). -CG
   2041 
   2042 Sun Sep  4 17:25:45 CEST 2016
   2043 	Tests for "Upgrade" logic are now in place and passing.
   2044 	However, still need to make sure code is portable. -CG
   2045 
   2046 Sat Sep  3 11:56:20 CEST 2016
   2047 	Adding logic for handling HTTP "Upgrade" in thread-per-connection
   2048 	mode. Also still untested. -CG
   2049 
   2050 Sat Aug 27 21:01:43 CEST 2016
   2051 	Adding a few extra safety checks around HTTP "Upgrade"
   2052 	(against wrong uses of API), and a testcase. -CG
   2053 
   2054 Sat Aug 27 20:07:53 CEST 2016
   2055 	Adding completely *untested* logic for HTTP "Upgrade"
   2056 	handling. -CG
   2057 
   2058 Sat Aug 27 18:20:38 CEST 2016
   2059 	Releasing libmicrohttpd 0.9.51. -CG
   2060 
   2061 Tue Aug 23 22:54:07 MSK 2016
   2062 	Internal refactoring: W32 compatibility layer was finally
   2063 	replaced with several specialized abstraction layers for
   2064 	sockets, control pipes (inter-thread communication) and
   2065 	generic functions. Now all major platform functions
   2066 	(including threads and mutex) are implemented in thin
   2067 	abstraction layers.
   2068 	Improved performance on W32 due to eliminating
   2069 	translation of error to POSIX codes and using W32 codes
   2070 	directly (through macros).
   2071 	Improved error reporting on all platforms.
   2072 	Improved error handling and reporting on Darwin.
   2073 	Minor fixes. -EG
   2074 
   2075 Tue Aug 16 15:14:30 MSK 2016
   2076 	Minor improvement for monotonic clock.
   2077 	Minor configure fix for non-bash shells. -EG
   2078 
   2079 Mon Aug 15 13:06:52 CEST 2016
   2080 	Fixed possible crash due to write to read-only region of
   2081 	memory given ill-formed HTTP request (write was otherwise
   2082 	harmless, writing 0 to where there was already a 0).
   2083 	Fixed issue with closed connection slots not immediately
   2084 	being available again for new connections if we reached
   2085 	our connection limit.
   2086 	Avoid even accept()ing connections in certain thread modes
   2087 	if we are at the connection limit and
   2088 	MHD_USE_PIPE_FOR_SHUTDOWN is available. -CG
   2089 
   2090 Wed Aug 10 16:42:57 MSK 2016
   2091 	Moved threads, locks and mutex abstraction to separate files,
   2092 	some minor errors fixed, added support for thread name functions
   2093 	on various platforms, added configure flag for disable thread
   2094 	naming. -EG
   2095 
   2096 Sat Jul 23 20:45:51 CEST 2016
   2097 	Added macro detection of speed/size compiler optimization.
   2098 	Added different implementation of functions in mhd_str.c for
   2099 	size optimization. Enabled automatically if compiler size
   2100 	optimization is detected or MHD_FAVOR_SMALL_CODE is defined.
   2101 	Added unit tests for all mhd_str.c functions. -EG
   2102 
   2103 Sat Jul 16 21:54:49 CEST 2016
   2104 	Warn user if they sent connection into blocking
   2105 	state by not processing all POST data, not suspending,
   2106 	and not running in external select mode. -CG
   2107 
   2108 Fri Jul  8 21:35:07 CEST 2016
   2109 	Fix FIXME in tutorial. -CG
   2110 
   2111 Fri Jul  8 15:57:06 CEST 2016
   2112 	Adding support for 308 status code. -CG
   2113 
   2114 Sat Jun 25 13:49:31 CEST 2016
   2115 	Use shutdown to trigger select on NetBSD. -EG
   2116 
   2117 Thu Jun  2 09:55:50 CEST 2016
   2118 	Releasing libmicrohttpd 0.9.50. -CG
   2119 
   2120 Wed Jun  1 21:59:34 CEST 2016
   2121 	Do not send "Content-Length" header for 1xx/204/304 status codes. -CG
   2122 
   2123 Tue May 17 13:32:21 CEST 2016
   2124 	Allow clients to determine whether a connection is suspended;
   2125 	introduces MHD_CONNECTION_INFO_CONNECTION_SUSPENDED. -CG/FC
   2126 
   2127 Sun May 15 12:17:25 CEST 2016
   2128 	Fix handling system or process resource limit exhaustion upon
   2129 	accept(). -CG/CP
   2130 
   2131 Thu May 12 08:42:19 CEST 2016
   2132 	Fix handling of partial writes in MHD_USE_EPOLL_LINUX_ONLY; only
   2133 	consider sockets returning EAGAIN as unready. -CG/CP
   2134 
   2135 Mon May  2 06:08:26 CEST 2016
   2136 	Adding logic to help address FE performance issue as
   2137 	discussed on the mailinglist with subject
   2138         "single-threaded daemon, multiple pending requests, responses batched".
   2139 	The new logic is only enabled when MHD_USE_EPOLL_TURBO is set.
   2140 	Note that some additional refactoring was also done to clean up
   2141 	the code and avoid code duplication, which may have actually fixed
   2142 	an unrelated issue with HTTPS and a POLL-style event loop. -CG
   2143 
   2144 Sat Apr 30 10:22:37 CEST 2016
   2145 	Added clarifications to manual based on questions on list. -CG
   2146 
   2147 Sat Apr 23 20:12:01 CET 2016
   2148 	Tests perf_get_concurrent and test_concurrent_stop ported to use
   2149 	pthread instead of fork(). Added more error detections. -EG
   2150 
   2151 Sat Apr 23 16:06:30 CET 2016
   2152 	Improved test_quiesce test. -EG
   2153 
   2154 Sat Apr 23 15:39:38 CET 2016
   2155 	Notify other threads in MHD_quiesce_daemon() so listen socket FD
   2156 	is removed from awaiting select() and poll(). -EG
   2157 
   2158 Sat Apr 23 14:17:15 CET 2016
   2159 	Revert "shutdown trigger select" on Darwin. Fixed daemon shutdown
   2160 	on Darwin without "MHD_USE_PIPE_FOR_SHUTDOWN" option. -EG
   2161 
   2162 Fri Apr 22 14:29:28 CET 2016
   2163 	Fixed race conditions when stopping quiesced daemon with thread
   2164 	pool. -EG
   2165 
   2166 Wed Apr 20 18:12:30 CET 2016
   2167 	Fixed macros in sysfdsetsize.c which could prevent compiling with
   2168 	non-default FD_SETSIZE.
   2169 	Fixed comments in mhd_str.c.
   2170 	Updated test_post.c to not ignore specific error on W32 if libcurl
   2171 	is built with workaround for WinSock bug. -EG
   2172 
   2173 Mon Apr 18 19:35:14 CET 2016
   2174 	Fixed data races leading to inability in rare situations to
   2175 	resume suspended connection. -EG
   2176 
   2177 Tue Apr 13 21:46:01 CET 2016
   2178 	Removed unneeded locking for global timeout list in
   2179 	MHD_USE_THREAD_PER_CONNECTION mode.
   2180 	Added 'simplepost' and 'largepost' examples to VS projects.
   2181 	Added strtoXX() locale-independent replacement functions.
   2182 	Added more error checking and minor fixes in digest auth
   2183 	functions - should improve security.
   2184 	Ignored specific errors in 'test_post' test until libcurl
   2185 	will implement workaround for WinSock bug.
   2186 	Fixed handling of caller-supplied socket with
   2187 	MHD_OPTION_LISTEN_SOCKET (regression in 0.9.49).
   2188 	Minor fixes.
   2189 	Various cosmetics and comments fixes. -EG
   2190 
   2191 Sat Apr 09 13:05:42 CET 2016
   2192 	Releasing libmicrohttpd 0.9.49. -EG
   2193 
   2194 Fri Apr 08 18:32:17 CET 2016
   2195 	Some minor internal fixes, addition error checking and
   2196 	micro optimizations.
   2197 	Reworked usage of sockets shutdown() - now work equally
   2198 	on all platforms, disconnection should be "more graceful". -EG
   2199 
   2200 Tue Mar 15 21:52:27 CET 2016
   2201 	Do not crash if pthread_create() fails. -DD
   2202 
   2203 Tue Mar 15 20:29:34 CET 2016
   2204 	Do not use eready DLL data structure unless
   2205 	we are actually using epoll(). -DD/CG
   2206 
   2207 Fri Feb  5 20:43:11 CET 2016
   2208 	Fixed testsuite compile warning on W32.
   2209 	Added check test for triggering poll() on
   2210 	listen socket. -EG
   2211 
   2212 Thu Feb  4 11:38:11 CET 2016
   2213 	Added some buffer overrun protection.
   2214 	Fixed handling of malformed URI with spaces. -EG
   2215 
   2216 Wed Feb  3 15:41:57 CET 2016
   2217 	Make signal-pipe non-blocking and drain it. -CG
   2218 
   2219 Sat Jan 30 15:49:07 CET 2016
   2220 	Fix running select() with empty fdsets on W32. -EG
   2221 
   2222 Mon Jan 25 13:45:50 CET 2016
   2223 	Added check test for triggering select() on
   2224 	listen socket. -EG
   2225 
   2226 Thu Jan 21 19:35:18 CET 2016
   2227 	Fixed old bug with making sockets non-blocking on
   2228 	various platforms so now sockets are really
   2229 	non-blocking on all supported platforms.
   2230 	Reworked and fixed code for using SOCK_CLOEXEC,
   2231 	SOCK_NONBLOCK and EPOLL_CLOEXEC resulting in
   2232 	fewer used system calls. -EG
   2233 
   2234 Tue Jan 19 20:59:59 CET 2016
   2235 	Cleaned up and optimized with minor fixes code for
   2236 	making sockets non-blocking non-inheritable. -EG
   2237 
   2238 Tue Jan 19 11:14:18 CET 2016
   2239 	Removed workaround for Cygwin non-blocking sockets:
   2240 	handling non-blocking sockets were fixed in Cygwin
   2241 	and libmicrohttpd how uses non-blocking sockets on
   2242 	all platforms. -EG
   2243 
   2244 Mon Jan 18 23:54:45 CET 2016
   2245 	Cleaned up examples to avoid giving oversimplified code
   2246 	that may lead to complications if adopted naively. -CG
   2247 
   2248 Sun Jan 17 11:18:55 CET 2016
   2249 	Do no refuse to send response if sendfile() failed with
   2250 	EINVAL (common error for files located on SMB/CIF). -EG
   2251 
   2252 Sat Jan 16 19:14:39 CET 2016
   2253 	Use US-ASCII only (instead of user locale settings) when
   2254 	performing caseless string comparison as required by
   2255 	standard. -EG
   2256 
   2257 Tue Jan 12 16:10:09 CET 2016
   2258 	Fixed declaraion of MHD_get_reason_phrase_for(). -EG
   2259 
   2260 Mon Jan 11 19:58:50 CET 2016
   2261 	Configure.ac small fixes and refactoring. -EG
   2262 
   2263 Fri Dec 18 15:54:50 CET 2015
   2264 	Releasing libmicrohttpd 0.9.48. -CG
   2265 
   2266 Tue Dec  15 18:35:55 CET 2015
   2267 	Improved compatibility with VS2010 and other older
   2268 	compilers. -EG
   2269 
   2270 Tue Dec  8 21:48:44 CET 2015
   2271 	Default backlog size for listen socket was changed from
   2272 	32 to SOMAXCONN, added new option MHD_OPTION_LISTEN_BACKLOG_SIZE
   2273 	to override default backlog size.
   2274 	If not all connections can be handled by MHD_select() than
   2275 	at least some of connections will be processed instead of
   2276 	failing without any processing.
   2277 	Fixed redefenition of FD_SETSIZE on W32 so select() will
   2278 	work with 2000 connections instead of 64.
   2279 	Better handled redefenition of FD_SETSIZE on all
   2280 	platforms. -EG
   2281 
   2282 Sat Dec  5 17:30:45 CET 2015
   2283 	Close sockets more aggressively in multi-threaded
   2284 	mode (possibly relevant for idle servers). -CG
   2285 
   2286 Fri Dec  4 13:53:05 CET 2015
   2287 	Releasing libmicrohttpd 0.9.47. -CG
   2288 
   2289 Thu Dec  3 18:21:44 CET 2015
   2290 	Reworked VS project files. Used x64 build tools by
   2291 	default, many optimizations, fixes.
   2292 	Added project files for VS 2015. -EG
   2293 
   2294 Tue Dec  1 14:05:13 CET 2015
   2295 	SPDY is dead, killing experimental libmicrospdy. -CG
   2296 
   2297 Tue Dec  1 10:01:12 CET 2015
   2298 	New logic for controlling socket buffer modes.
   2299 	Eliminated delay before last packet in response and before
   2300 	"100 Continue" response on all platforms. Also response
   2301 	header are pushed to client without waiting for response
   2302 	body. -EG
   2303 
   2304 Wed Nov 25 17:02:53 CET 2015
   2305 	Remove 200ms delay observable with keep-alive on Darwin
   2306 	and *BSD platforms. -EG
   2307 
   2308 Tue Nov 10 15:25:48 CET 2015
   2309 	Fix issue with shutdown if connection was resumed just
   2310 	before shutdown. -FC
   2311 
   2312 Fri Nov  6 22:54:38 CET 2015
   2313 	Fixing the buffer shrinkage issue, this time with test. -CG
   2314 	Releasing libmicrohttpd 0.9.46. -CG
   2315 
   2316 Tue Nov  3 23:24:52 CET 2015
   2317 	Undoing change from Sun Oct 25 15:29:23 CET 2015
   2318 	as the original code was counter-intuitive but
   2319 	correct, and the new code does break pipelining.
   2320 	Ignore empty lines at the beginning of an HTTP
   2321 	request (more tolerant implementation). -CG
   2322 
   2323 Sat Oct 31 15:52:52 CET 2015
   2324 	Releasing libmicrohttpd 0.9.45. -CG
   2325 
   2326 Tue Oct 27 12:08:02 CET 2015
   2327 	Rework deprecation maros: fix errors with old GCC versions,
   2328 	improved support for old clang and new GCC. -EG
   2329 
   2330 Sun Oct 25 23:05:32 CET 2015
   2331 	Return correct header kind in MHD_get_connection_values()
   2332 	even if a bitmask is used for the "kind" argument. -FC/CG
   2333 
   2334 Sun Oct 25 15:29:23 CET 2015
   2335 	Fixing transient resource leak affecting long-lived
   2336 	connections with a lot of keep-alive and HTTP request
   2337 	pipelining under certain circumstances (which reduced
   2338 	the receive window).
   2339 	Fixed assertion failure triggered by a race in
   2340 	thread-per-connection mode on shutdown in rare
   2341 	circumstances. -CG
   2342 
   2343 Mon Oct  5 11:53:52 CEST 2015
   2344 	Deduplicate code between digestauth and connection
   2345 	parsing logic for URI arguments, shared code moved
   2346 	to new MHD_parse_arguments_ function in internal.c. -CG
   2347 
   2348 Thu Oct  1 21:22:05 CEST 2015
   2349 	Releasing libmicrohttpd 0.9.44. -CG
   2350 
   2351 Wed Sep 30 21:05:38 CEST 2015
   2352 	Various fixes for W32 VS project files. -EG
   2353 
   2354 Fri Sep 25 09:49:10 CEST 2015
   2355 	Fix digest authentication with URL arguments where
   2356 	value-less keys are given before the last argument.
   2357 	Thanks to MA for reporting. -CG
   2358 
   2359 Tue Sep 22 19:17:54 CEST 2015
   2360 	Do not use shutdown() on listen socket if MHD_USE_PIPE_FOR_SHUTDOWN
   2361 	is set. -CG
   2362 
   2363 Wed Sep 16 11:06:02 CEST 2015
   2364 	Releasing libmicrohttpd 0.9.43. -CG
   2365 
   2366 Wed Sep  2 16:50:31 CEST 2015
   2367  	Call resume_suspended_connections() when the user is running
   2368 	its own mainloop and calls MHD_run_from_select() to support
   2369 	resuming connections with external select. -FC
   2370 
   2371 Sun Aug 30 14:53:51 CEST 2015
   2372 	Correct documentation as to when MHD_USE_EPOLL_LINUX_ONLY
   2373 	is allowed. -CG
   2374 
   2375 Thu Aug 27 09:38:44 CEST 2015
   2376 	Reimplement monotonic clock functions for better
   2377 	support various platforms.
   2378 	Print more information during configure. -EG
   2379 
   2380 Fri Aug 14 14:13:55 CEST 2015
   2381 	Export MHD_get_reason_phrase_for() symbol. -CG
   2382 
   2383 Sat Aug  8 12:19:47 CEST 2015
   2384 	Added checks for overflows and buffer overruns, fixed
   2385 	possible buffer overrun.
   2386 	Updated md5 implementation.
   2387 	Fixed many compiler warning (mostly for VC compiler). -EG
   2388 
   2389 Tue Aug  4 13:50:23 CEST 2015
   2390 	Fix failure to properly clean up timed out connections
   2391 	if running in external select mode without listen socket,
   2392 	which caused busy waiting until new connections arrived.
   2393 	(Fixes #3924, thanks to slimp for reporting and testcase). -CG
   2394 
   2395 Sun Aug  2 19:08:20 CEST 2015
   2396 	Ignore close() errors on sockets except for EBADF,
   2397 	fixes #3926. -CG
   2398 
   2399 Sat Jun 27 22:16:27 CEST 2015
   2400 	Make sure to decrement connection counter before
   2401 	calling connection notifier so that
   2402 	MHD_DAEMON_INFO_CURRENT_CONNECTIONS does not
   2403 	present stale information (relevant if this is
   2404 	used for termination detection of a daemon
   2405 	stopped via MHD_quiesce_daemon()). Thanks to
   2406 	Markus Doppelbauer for reporting. -CG
   2407 
   2408 Fri Jun 26 23:17:20 CEST 2015
   2409 	Fix (automatic) handling of HEAD requests with
   2410 	MHD_create_response_from_callback() and HTTP/1.1
   2411 	connection keep-alive. Thanks to Cristian Klein
   2412 	for reporting. -CG
   2413 
   2414 Tue Jun 09 18:30:17 CEST 2015
   2415 	Add new functions MHD_create_response_from_fd64() and
   2416 	MHD_create_response_from_fd_at_offset64(). -EG
   2417 
   2418 Thu Jun  4 13:37:05 CEST 2015
   2419 	Fixing memory leak in digest authentication. -AW
   2420 
   2421 Wed Jun 03 21:23:47 CEST 2015
   2422 	Add deprecation compiler messages for deprecated functions
   2423 	and macros. -EG
   2424 
   2425 Fri May 29 12:23:01 CEST 2015
   2426 	Fixing digest authentication when used in combination
   2427 	with escaped characters in URLs. -CG/AW
   2428 
   2429 Wed May 13 11:49:09 CEST 2015
   2430 	Releasing libmicrohttpd 0.9.42. -CG
   2431 
   2432 Wed May 13 11:33:59 CEST 2015
   2433 	Fix off-by-one in MHD_start_daemon_va() error handling logic
   2434 	when initialization of threads for thread pool fails for some
   2435 	reason. -CG/JC
   2436 
   2437 Thu May  7 17:05:46 CEST 2015
   2438 	Add support for poll() in W32. -EG
   2439 
   2440 Wed May  6 18:07:38 CEST 2015
   2441 	Fix #3784: actually implement MHD_CONNECTION_INFO_SOCKET_CONTEXT. -asherkin
   2442 
   2443 Thu Apr 30 00:03::49 CEST 2015
   2444 	Releasing libmicrohttpd 0.9.41. -CG
   2445 
   2446 Thu Apr 30 00:02:33 CEST 2015
   2447 	Fix issue where resumed connections would not continue
   2448 	unless other requests are active in certain
   2449 	event-loop modes. Thanks to Mike Castillo for reporting. -CG
   2450 
   2451 Wed Apr 15 03:16:18 CEST 2015
   2452 	Fixing issue #3753 (testcase issue). -CG
   2453 
   2454 Wed Apr 15 00:30:34 CEST 2015
   2455 	Fix looping issue when using MHD_USE_POLL_INTERNALLY
   2456 	and a client times out. -LB
   2457 
   2458 Sun Apr 12 21:48:50 CEST 2015
   2459 	Fix looping issue when combining MHD_USE_EPOLL_LINUX_ONLY
   2460 	with HTTPS and slow clients. -CG
   2461 
   2462 Fri Apr 10 22:02:27 CEST 2015
   2463 	Fix logic to add "Connection: Close" that was broken in 0.9.38
   2464 	when adding MHD_RF_HTTP_VERSION_1_0_ONLY. -CG
   2465 
   2466 Fri Apr 10 00:38:40 CEST 2015
   2467 	Ensure fast termination in MHD_USE_THREAD_PER_CONNECTION
   2468 	mode on W32 by using signal pipe. -CG
   2469 
   2470 Thu Apr  9 09:01:15 CEST 2015
   2471 	Fixing issue with undrained signal pipe when using
   2472 	MHD_USE_SELECT_INTERNALLY and MHD_USE_POLL in combination
   2473 	with MHD_resume_connection(), causing 100% CPU usage. -DD
   2474 
   2475 Tue Apr  7 00:12:36 CEST 2015
   2476 	Releasing libmicrohttpd 0.9.40. -CG
   2477 
   2478 Sat Apr  4 18:28:24 CEST 2015
   2479 	Fix potential deadlock issue in MHD_USE_THREAD_PER_CONNECTION
   2480 	mode if shutdown is initiated while connections are active. -CG
   2481 
   2482 Sat Apr  4 17:48:13 CEST 2015
   2483 	Fix issue in thread-pool mode where a MHD_stop_daemon()
   2484 	might not reach threads that stopped listening because
   2485 	we hit the maximum number of concurrent connections and
   2486 	the option MHD_USE_PIPE_FOR_SHUTDOWN was also not used.
   2487 	Testcase added as well. -CG
   2488 
   2489 Fri Apr  3 12:55:31 CEST 2015
   2490 	Update HTTPS testcases to avoid SSLv3, as SSLv3 is dead.
   2491 
   2492 Fri Apr  3 12:25:28 CEST 2015
   2493 	Do not enforce FD_SETSIZE-limit on worker control
   2494 	pipe when using MHD_USE_EPOLL_LINUX_ONLY (#3751). -MH/CG
   2495 
   2496 Tue Mar 31 10:28:26 CEST 2015
   2497 	Adding MHD_OPTION_NOTIFY_CONNECTION,
   2498 	MHD_CONNECTION_NOTIFY_STARTED,
   2499 	MHD_CONNECTION_NOTIFY_CLOSED and
   2500 	MHD_CONNECTION_INFO_SOCKET_CONTEXT to allow
   2501 	applications to trigger operations when TCP
   2502 	connections start or end, instead of just
   2503 	exposing HTTP requests starting and ending. -RG/CG
   2504 
   2505 Thu Feb 26 09:55:43 CET 2015
   2506 	Fixing bug that prevented MHD_OPTION_HTTPS_MEM_DHPARAMS
   2507 	from working within a MHD_OPTION_ARRAY. -DD
   2508 
   2509 Sun Feb  8 01:24:38 CET 2015
   2510 	Adding MHD_OPTION_HTTPS_KEY_PASSWORD as proposed by
   2511 	Andrew Basile. -CG/AB
   2512 
   2513 Wed Feb  4 20:34:22 CET 2015
   2514 	Fix issue where for HTTP/1.0-clients that set
   2515 	Connection: Keep-Alive header a response of
   2516 	indefinite size was generated with chunked encoding. -CG
   2517 
   2518 Sun Jan 18 20:09:06 CET 2015
   2519 	Fix potential infinite loop on shutdown in multi-threaded mode
   2520 	under certain conditions. -CG
   2521 
   2522 Mon Dec 22 16:33:18 CET 2014
   2523 	Releasing 0.9.39. -CG
   2524 
   2525 Mon Dec 22 13:02:36 CET 2014
   2526 	Fix generated compiler flags for Solaris Studio linker (#3584). -CG
   2527 
   2528 Sat Dec 20 00:35:40 CET 2014
   2529 	Adding MHD_http_unescape() to public API (#3585). -CG
   2530 	Updating documentation to document
   2531 	MHD_is_feature_supported(). -CG
   2532 
   2533 Thu Dec  4 00:43:10 CET 2014
   2534 	If "Connection: upgrade" is requested, do not add
   2535 	"Connection: Keep-Alive" in the response. -GJ
   2536 
   2537 Tue Nov 18 13:52:29 CET 2014
   2538 	Call MHD_cleanup_connections() during MHD_DAEMON_INFO_CURRENT_CONNECTIONS
   2539 	processing for more accurate results. -MS
   2540 
   2541 Wed Oct 29 20:45:21 CET 2014
   2542 	Adding MHD_OPTION_LISTENING_ADDRESS_REUSE option allowing clients
   2543 	to force allowing re-use of the address:port combination
   2544 	(SO_REUSEPORT). -MS
   2545 
   2546 Wed Oct 29 16:27:05 CET 2014
   2547 	Adding MHD_DAEMON_INFO_CURRENT_CONNECTIONS to allow clients
   2548 	to query the number of active connections. -MS
   2549 
   2550 Fri Oct  3 14:28:58 CEST 2014
   2551 	Releasing 0.9.38. -CG
   2552 
   2553 Mon Sep 29 22:25:34 CEST 2014
   2554 	Properly decode '+' in URL-encoded POST data. -CG/KM
   2555 
   2556 Fri Sep 12 17:32:09 CEST 2014
   2557 	Fix --disable-dauth configure option (#3543). -doostee
   2558 
   2559 Thu Jun 26 21:06:04 CEST 2014
   2560 	Fix failure to terminate 'instantly' in thread-per-connection
   2561 	mode if there is a client with open connections.
   2562 	Thanks to Kenneth Mastro for reporting. -CG
   2563 
   2564 Sun Jun 22 12:22:08 CEST 2014
   2565 	Actually, avoid locking on response as responses must
   2566 	not be modified in a connection-specific way; instead
   2567 	modify the connection's data buffer to add missing
   2568 	responses headers.  If we are forced to add
   2569 	"Connection: close", suppress output of conflicting
   2570 	application-provided "Connection: Keep-Alive" header. -CG
   2571 
   2572 Sun Jun 22 00:22:08 CEST 2014
   2573 	Lock on response if adding headers, needed if response
   2574 	object is shared across threads and connections. -CG
   2575 
   2576 Thu Jun 19 17:32:32 CEST 2014
   2577 	Ensure that listen FD is bound to epoll FD even before
   2578 	MHD_run() is called if running with MHD_USE_EPOLL_LINUX_ONLY
   2579 	in combination with 'external select' mode.  Thanks to
   2580 	Marcos Pindado Sebastian for reporting. -CG
   2581 
   2582 Sun Jun  8 15:10:44 CEST 2014
   2583 	Add 'MHD_set_response_options' as a way to set per-response
   2584 	flags.  Add flag to force HTTP 1.0-only conservative
   2585 	behavior, in particular suppressing adding "Connection"
   2586 	headers. -CG
   2587 
   2588 Mon Jun  2 00:03:28 CEST 2014
   2589 	Added back unescaping for URI path (#3413) but without
   2590 	unescaping '+' (#3371) to remain compatible with
   2591 	MHD 0.9.34 and before.  Note that applications providing
   2592 	a custom MHD_OPTION_UNESCAPE_CALLBACK are no longer expected
   2593 	to replace '+' with ' ', as that is now done separately for
   2594 	the locations where this transformation is appropriate.
   2595 	Releasing 0.9.37. -CG
   2596 
   2597 Wed May 28 15:30:56 CEST 2014
   2598 	Properly applying patch that was supposed to be
   2599 	committed on "May  2 20:22:45 CEST 2014" to address
   2600 	infinite loop (DoS) when HTTP connection is reset (#3392). -GM
   2601 
   2602 Sun May 25 20:18:27 CEST 2014
   2603 	Fixed W32 build issues. -EG
   2604 	Releasing 0.9.36. -CG
   2605 
   2606 Sat May 17 06:47:00 CEST 2014
   2607 	Fix notifying client about completed request twice
   2608 	under certain circumstances. -CG
   2609 
   2610 Tue May 13 18:24:37 CEST 2014
   2611 	Fix accidental transmission of footer termination '\r\n'
   2612 	for responses with zero byte payload and non-chunked
   2613 	encoding (#3397).  Thanks to amatus for reporting. -CG
   2614 
   2615 Sun May  4 11:05:26 CEST 2014
   2616 	Fix gnutls header check to make it cross-compile aware. -BK
   2617 
   2618 May  2 20:22:45 CEST 2014
   2619 	Fix infinite loop (DoS) when HTTP connection is reset (#3392). -GM
   2620 	Fix possible issue from combination of epoll and suspend/resume
   2621 	logic if edge trigger event is lost; also simplify logic to
   2622 	maintain simpler invariants on the epoll state. -CG
   2623 	Use OpenSSL cipher list "HIGH" in libmicrospdy (#3391). -CG
   2624 	Releasing 0.9.35. -CG
   2625 
   2626 Thu Apr 10 09:39:38 CEST 2014
   2627 	Removed unescaping for URI path (#3371) as '+' should not
   2628 	be converted to space in accordance with
   2629 	http://www.w3.org/TR/html401/appendix/notes.html#ampersands-in-uris
   2630 	and http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1
   2631 	Note that we now also no longer convert '#38;' to '&'; if needed,
   2632 	the application needs to apply unescaping to the path of the URI
   2633 	itself (before, MHD unescaped '#38;' but not '&amp;', so this
   2634 	inconsistency was now resolved by simply not unescaping anything
   2635 	before the first '&'). -CG
   2636 
   2637 Tue Apr 08 15:35:44 CET 2014
   2638 	Added support for W32 native threads.
   2639 	Added --with-threads=LIB configure parameter. -EG
   2640 
   2641 Mon Apr  7 13:25:30 CEST 2014
   2642 	Add MHD_OPTION_HTTPS_MEM_DHPARAMS to allow applications
   2643 	to enable PFS. -HB/CG
   2644 
   2645 Tue Apr 01 07:10:23 CET 2014
   2646 	Added usage of native mutex on W32. -EG
   2647 
   2648 Sat Mar 29 16:12:03 CET 2014
   2649 	Added MHD_is_feature_supported() function. -EG
   2650 
   2651 Thu Mar 27 14:47:54 CET 2014
   2652 	Used larger FD_SETSIZE internally on W32.
   2653 	Extended API to work with non-default FD_SETSIZE. -EG
   2654 
   2655 Tue Mar 25 12:53:55 CET 2014
   2656 	Fix limiting by IPv6 address. -EG
   2657 
   2658 Tue Mar 25 09:06:13 CET 2014
   2659 	Added more FD_SETSIZE checks.
   2660 	Implemented FD_SETSIZE checks for W32. -EG
   2661 
   2662 Wed Mar 05 13:15:05 CET 2014
   2663 	Cleanup and refactoring of configure.ac.
   2664 	m4 macros updated.
   2665 	Custom configure macros replaced with autoconf archive macros.
   2666 	SPDY disabled by default on W32.
   2667 	Changed configure flag from '--disable-pipe' to
   2668 	'--enable-socketpair'.
   2669 	Added configure flags '--disable-doc' and '--disable-examples'.
   2670 	Narrowed down external lib specific compiler and linker flags
   2671 	usage. -EG
   2672 
   2673 Wed Feb 26 17:42:34 CET 2014
   2674 	Refactoring of configure.ac: custom macros replaced with macros
   2675 	from Autoconf Archive.
   2676 	Minor corrections of configure.ac.
   2677 	Excluded pthread flags from global flags, pthread now used only
   2678 	where required.
   2679 	W32: fixed .dll resource compilation with '-isystem' CPPFLAG.
   2680 	W32: improved header compatibility with MSVC.
   2681 	W32: now tested on Win64, compiled by MinGW-w64. -EG
   2682 
   2683 Mon Feb 24 23:13:53 CET 2014
   2684 	Added support for TCP FASTOPEN. -SHT
   2685 	Releasing 0.9.34. -CG
   2686 
   2687 Thu Feb 20 14:17:05 CET 2014
   2688 	W32: Added creation of libmicrohttpd.lib, libmicrohttpd.def,
   2689 	libmicrohttpd.exp and libmicrohttpd-static.lib for easy use
   2690 	compiled MHD with MSVC.
   2691 	W32: Use MS lib.exe tool if available for creating MSVC staff.
   2692 	W32: Added .dll information resource. -EG
   2693 
   2694 Tue Feb 18 19:46:45 CET 2014
   2695 	Removed dependency on plibc for simpler compilation for W32.
   2696 	Added configure option "--disable-pipes" to use socketpairs
   2697 	instead of pipes for signalling to child threads. Pipes are
   2698 	always disabled on W32.
   2699 	Some code refactoring. -EG
   2700 
   2701 Sat Feb  8 15:08:35 CET 2014
   2702 	Corrected some uses of 'int' vs. 'size_t'. -EG/CG
   2703 
   2704 Wed Jan 22 09:44:33 CET 2014
   2705 	MHD_USE_DUAL_STACK in libmicrohttpd currently just *inhibits
   2706 	setting* the IPV6_V6ONLY socket option, but per Microsoft's
   2707 	documentation the default on Windows is that this is enabled, thus
   2708 	MHD_USE_DUAL_STACK will not work (since it leaves the
   2709 	default). libmicrohttpd should probably just unconditionally set
   2710 	IPV6_V6ONLY to the desired value when the option is available. -LJ
   2711 
   2712 Wed Jan  1 21:38:18 CET 2014
   2713 	Allow Keep-Alive with HTTP 1.0 (if explicitly requested),
   2714 	and automatically set "Connection: Keep-Alive" in response
   2715 	in this case as well. -CG
   2716 
   2717 Tue Dec 24 12:27:39 CET 2013
   2718 	Adding explicit annotations to hide symbols that are not for
   2719 	export in the C code (gcc 4.0 or higher only). -CG
   2720 
   2721 Sun Dec 22 14:54:30 CET 2013
   2722 	Adding a few lines to avoid warnings from picky compilers. -CG
   2723 
   2724 Sat Dec 21 17:26:08 CET 2013
   2725 	Fixed an issue with a missing argument in the postexample.
   2726 	Fixed issue with bogus offset increment involving sendfile
   2727 	on GNU/Linux.  Adding support for SNI.
   2728 	Releasing 0.9.33. -CG
   2729 
   2730 Mon Dec  9 21:41:57 CET 2013
   2731 	Fix for per-worker daemon pipes enabled with
   2732 	MHD_USE_SUSPEND_RESUME that were not closed in
   2733 	MHD_stop_daemon. -MH
   2734 
   2735 Sat Dec  7 00:44:49 CET 2013
   2736 	Fixing warnings and build issue if --disable-https is given
   2737 	to configure. -CG
   2738 
   2739 Tue Dec  3 21:25:56 CET 2013
   2740 	Security fix: do not read past 0-terminator when unescaping
   2741 	strings (thanks to Florian Weimer for reporting).
   2742 	Releasing 0.9.32. -CG
   2743 
   2744 Tue Dec  3 21:05:38 CET 2013
   2745 	Signaling n times for shutdown works, but for resume we need to
   2746 	wake up the correct daemon. Even if we signal n times in that
   2747 	case also, there's no guarantee that some daemon can't run
   2748 	through its select loop more than once before the daemon we want
   2749 	to wake up gets a chance to read.  Thus we need a signal pipe
   2750 	per thread in the thread pool IF MHD_suspend_connection is used.
   2751 	This introduces a new flag MHD_USE_SUSPEND_RESUME to add those
   2752 	additional pipes and only allow MHD_suspend_connection to be
   2753 	used in conjunction with this flag.
   2754 
   2755 	Also, as MHD_resume_connection() will be called on a non-daemon
   2756 	thread, but none of the queue insert/delete calls are thread safe,
   2757 	we need to be concerned about (a) corrupting the queue, and (b)
   2758 	having to add mutex protection around every access to the queues,
   2759 	including loops through timer queues, etc. This wasn't a problem
   2760 	before adding resume; even suspend should be safe since it happens
   2761 	in a callback from the daemon.
   2762 
   2763 	I think it's easier to (a) have MHD_suspend_connection() move the
   2764 	connection to a suspended queue, (b) have MHD_resume_connection()
   2765 	mark the connection as resuming, and then (c) do all the actual
   2766 	queue manipulations in MHD_select (poll, epoll, etc.) to move the
   2767 	resumed connections back to their normal queues, in response to
   2768 	the wake up. The changes are simpler & cleaner. There is a cost to
   2769 	the basic select loop that is avoided by making suspend/resume a
   2770 	startup option. The per-worker pipes can then also be enabled only
   2771 	with that option set. -MH
   2772 
   2773 Fri Nov 29 20:17:03 CET 2013
   2774 	Eliminating theoretical stack overflow by limiting length
   2775 	of URIs in authentication headers to 32k (only applicable
   2776 	if the application explicitly raised the memory limits,
   2777 	and only applies to MHD_digest_auth_check). Issue was
   2778 	reported by Florian Weimer. -CG
   2779 
   2780 Tue Nov 26 01:26:15 CET 2013
   2781 	Fix race on shutdown signal with thread pool on non-Linux
   2782 	systems by signalling n times for n threads. -CG
   2783 
   2784 Sun Nov 24 13:41:15 CET 2013
   2785 	Introduce state to mark connections in suspended state (with
   2786 	epoll); add missing locking operations in MHD_suspend_connection.
   2787 	Fix definition of MHD_TLS_CONNECTION_INIT.  -MH/JC
   2788 
   2789 Wed Oct 30 09:34:20 CET 2013
   2790 	Fixing issue in PostProcessor when getting partial boundary
   2791 	at the beginning, expanding test suite. -CG
   2792 
   2793 Sun Oct 27 15:19:44 CET 2013
   2794 	Implementing faster processing of upload data in multipart
   2795 	encoding (thanks to performance analysis by Adam Homolya). -CG
   2796 
   2797 Thu Oct 24 10:40:03 CEST 2013
   2798 	Adding support for connection flow control via
   2799 	MHD_suspend_connection and MHD_resume_connection. -CG
   2800 
   2801 Sat Oct 19 16:40:32 CEST 2013
   2802 	Releasing libmicrohttpd 0.9.31. -CG
   2803 
   2804 Mon Sep 23 20:24:48 CEST 2013
   2805 	Fixing build issues on OS X with CLOCK_MONOTONIC not being
   2806 	implemented on OS X. -CG
   2807 
   2808 Mon Sep 23 14:15:00 CEST 2013
   2809 	Make libmicrohttpd play nicely with upcoming libgcrypt 1.6.0. -CG
   2810 
   2811 Fri Sep 20 17:01:37 CEST 2013
   2812 	Improved configure checks for cURL. -CG
   2813 
   2814 Wed Sep 18 18:29:24 CEST 2013
   2815 	Signal connection termination as OK (and not as ERROR) if the
   2816 	stream was terminated by the callback returning
   2817 	MHD_CONTENT_READER_END_OF_STREAM. Also, release response
   2818 	mutex before calling the termination callback, to avoid
   2819 	possible deadlock if the client destroys the response in
   2820 	the termination callback (due to non-recursiveness of the
   2821 	lock). -CG
   2822 
   2823 Wed Sep 18 14:31:35 CEST 2013
   2824 	Adding #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN. -CG
   2825 
   2826 Tue Sep 17 21:32:47 CEST 2013
   2827 	Also pass MHD connection handle in URI log callback. -CG
   2828 
   2829 Fri Sep  6 10:00:44 CEST 2013
   2830 	Improved check for proper OpenSSL version for
   2831 	libmicrospdy. -CG
   2832 
   2833 Wed Sep  4 17:23:15 CEST 2013
   2834 	Set IPV6_V6ONLY socket option correctly when IPv6 is
   2835 	enabled (MHD_USE_IPv6) but not dual stack
   2836 	(MHD_USE_DUAL_STACK) -MW
   2837 
   2838 Mon Sep  2 22:59:45 CEST 2013
   2839 	Fix use-after-free in epoll()-mode on read error.
   2840 	Releasing libmicrohttpd 0.9.30. -CG
   2841 
   2842 Sun Sep  1 21:55:53 CEST 2013
   2843 	Fixing build issues on FreeBSD. -CG
   2844 
   2845 Fri Aug 30 13:53:04 CEST 2013
   2846 	Started to implement #3008 (RFC 2616, section 8.1.4
   2847 	says HTTP server SHOULD terminate connection if the
   2848 	client closes it for writing via TCP FIN, so we should
   2849 	continue to try to read and react differently
   2850 	if recv() returns zero). -CG
   2851 
   2852 Wed Aug 28 18:40:47 CEST 2013
   2853 	Fix #3007 (build issue if messages are disabled). -CG
   2854 
   2855 Tue Aug 27 18:39:08 CEST 2013
   2856 	Fix build issue if SOCK_NONBLOCK/EPOLL_CLOEXEC are not
   2857 	defined (as is the case on older glibc versions). -CG
   2858 
   2859 Fri Aug 23 14:28:02 CEST 2013
   2860 	Releasing libmicrohttpd 0.9.29. -CG
   2861 
   2862 Mon Aug 12 23:51:18 CEST 2013
   2863 	Updated manual, documenting W32 select/shutdown issue. -CG
   2864 
   2865 Sat Aug 10 21:01:18 CEST 2013
   2866 	Fixed #2983. -CG
   2867 
   2868 Sat Aug 10 20:39:27 CEST 2013
   2869 	Use 'errno' to indicate why 'MHD_add_connection' failed
   2870 	(#2984). -CG
   2871 
   2872 Sat Aug 10 17:31:31 CEST 2013
   2873 	Disable use of 'shutdown' on W32 always as winsock
   2874 	doesn't properly behave with half-closed connections
   2875 	(see http://www.chilkatsoft.com/p/p_299.asp). -CG/LRN
   2876 
   2877 Thu Aug  8 07:55:07 CEST 2013
   2878 	Fixing issue with pipelining not working as desired. -CG
   2879 
   2880 Wed Aug  7 08:17:40 CEST 2013
   2881 	Removing dependency on liberty (on W32). -MC
   2882 
   2883 Fri Aug  2 20:55:47 CEST 2013
   2884 	Fix HTTP 1.1 compliance with respect to not returning
   2885 	content-length headers for successful "CONNECT" requests.
   2886 	Note that for unsuccessful "CONNECT" requests with an
   2887 	empty response body, users must now explicitly set the
   2888 	content-length header. -CG
   2889 
   2890 Sun Jul 28 16:35:17 CEST 2013
   2891 	Fixing build issue (missing #ifdef) in conjunction with
   2892 	--disable-messages. -blueness
   2893 
   2894 Sat Jul 20 12:35:40 CEST 2013
   2895 	Fixing combination of MHD_USE_SSL and MHD_USE_EPOLL_LINUX_ONLY. -CG
   2896 
   2897 Fri Jul 19 09:57:27 CEST 2013
   2898 	Fix issue where connections were not cleaned up when
   2899 	'MHD_run_from_select' was used.  Adding experimental
   2900 	TURBO mode.
   2901 	Releasing libmicrohttpd 0.9.28. -CG
   2902 
   2903 Sun Jul 14 19:57:56 CEST 2013
   2904 	Removing 'shutdown' calls that happen just before close or
   2905 	that are for read-only and for a client that has already
   2906 	stopped sending anyway (thus reducing number of system calls
   2907 	slightly). -CG
   2908 
   2909 Sun Jul 14 19:37:37 CEST 2013
   2910 	Name MHD worker threads on glibc >= 2.12. -,L4X[o]
   2911 
   2912 Fri Jul  5 12:05:01 CEST 2013
   2913 	Added MHD_OPTION_CONNECTION_MEMORY_INCREMENT to allow users
   2914 	to specify a custom value for incrementing read buffer
   2915 	sizes (#2899). -MH
   2916 
   2917 Fri Jun 28 14:05:15 CEST 2013
   2918 	If we shutdown connection for reading on POST due to error,
   2919 	really do not process further requests even if we already
   2920 	read the next request from the connection.  Furthermore, do
   2921 	not shutdown connections for reading on GET/HEAD/etc. just
   2922 	because	the application queued a response immediately ---
   2923 	reserve that behavior for PUT/POST. -CG
   2924 
   2925 Tue Jun 25 15:08:30 CEST 2013
   2926 	Added option 'MHD_USE_DUAL_STACK' to support a single
   2927 	daemon for IPv4 and IPv6 without the application having
   2928 	to do the binding. -CG
   2929 
   2930 Mon Jun 24 22:33:34 CEST 2013
   2931 	Finished integration with epoll, including benchmarking and
   2932 	documentation. -CG
   2933 
   2934 Sun Jun 23 15:28:13 CEST 2013
   2935 	Added option 'MHD_USE_PIPE_FOR_SHUTDOWN' to cleanly support
   2936 	'MHD_quiesce_daemon' with thread pools and per-connection
   2937 	threads (we then need a pipe for shutdown, but if
   2938 	'MHD_quiesce_daemon' is not used, we do not want to
   2939 	require the use of a pipe; introducing the pipe after
   2940 	the threads have been started can also fail, so the
   2941 	application needs to tell us early on). -CG
   2942 
   2943 Sat Jun 22 20:24:17 CEST 2013
   2944 	Removed locking calls for thread modes that do not need them.
   2945 	Reorganized way to obtain connection's event loop state.
   2946 	Added sorted XDLL for connections with default timeout to
   2947 	avoid having to loop over all connections to determine current
   2948 	timeout (custom per-connection timeouts are in another list
   2949 	which is iterated each time). -CG
   2950 
   2951 Fri Jun 21 20:55:48 CEST 2013
   2952 	Preparing build system and tests for epoll support. -CG
   2953 
   2954 Tue May 21 14:34:36 CEST 2013
   2955 	Improving configure tests for OpenSSL and spdylay to
   2956 	avoid build errors in libmicrospdy code if those libraries
   2957 	are not present. -CG
   2958 
   2959 Mon May 20 12:29:35 CEST 2013
   2960 	Added MHD_CONNECTION_INFO_CONNECTION_FD to allow clients
   2961 	direct access to connection socket; useful for COMET
   2962 	applications that need to disable NAGLE (#2886). -CG
   2963 
   2964 Mon May 15 12:49:01 CEST 2013
   2965 	Fixing #2859. -CG
   2966 
   2967 Sun May  5 21:44:08 CEST 2013
   2968 	Merged libmicrospdy code with libmicrohttpd build system
   2969 	(no major changes to libmicrospdy itself yet). -CG
   2970 
   2971 Sun May  5 20:13:59 CEST 2013
   2972 	Improved documentation and code style a bit.
   2973 	Releasing libmicrohttpd 0.9.27. -CG
   2974 
   2975 Thu Apr 25 13:08:10 CEST 2013
   2976 	Added 'MHD_quiesce_daemon' to allow application to stop
   2977 	processing new incoming connections while finishing
   2978 	ongoing requests. -CG
   2979 
   2980 Sun Mar 31 23:17:13 CEST 2013
   2981 	Added MHD demonstration code 'src/examples/demo.c'. -CG
   2982 
   2983 Sun Mar 31 20:27:48 CEST 2013
   2984 	Adding new API call 'MHD_run_from_select' to allow programs
   2985 	running in 'external select mode' to reduce the number of
   2986 	'select' calls by a factor of two. -CG
   2987 
   2988 Sun Mar 31 20:03:48 CEST 2013
   2989 	Performance improvements, updated documentation.
   2990 	Make better use of available memory pool memory for
   2991 	reading (especially important for large POST uploads);
   2992 	improve post processor speed by internally adjusting the
   2993 	buffer size by 4 bytes to ensure "round" IO sizes given
   2994 	a "round" post processor buffer size argument.  Note
   2995 	that applications that previously added 4 bytes to the
   2996 	post processor buffer size might now perform worse.
   2997 	Using the new 'demo' example, POST upload speed
   2998 	increased from ~90 MB/s to ~120 MB/s for a large file
   2999 	(note that the improvement comes from better aligned
   3000 	disk IO; without disk IO, the speed was (and remains)
   3001 	at ~1500 MB/s on this system). -CG
   3002 
   3003 Fri Mar 29 16:44:29 CET 2013
   3004 	Renaming testcases to consistently begin with test_;
   3005 	Changing build system to build examples in doc/.
   3006 	Releasing libmicrohttpd 0.9.26. -CG
   3007 
   3008 Thu Mar  7 10:13:08 CET 2013
   3009 	Fix bug in postprocessor URL parser (#2818). -jgresula
   3010 
   3011 Mon Mar  4 13:45:35 CET 2013
   3012 	Fix dropping of SSL connections if uptime is less than
   3013         MHD_OPTION_CONNECTION_TIMEOUT due to integer underflow (#2802). -greed
   3014 
   3015 Fri Mar  1 01:11:57 CET 2013
   3016 	Fully initialize cleanup mutex struct for each thread (#2803). -Ulion
   3017 
   3018 Wed Feb  6 01:51:52 CET 2013
   3019 	Releasing libmicrohttpd 0.9.25. -CG
   3020 
   3021 Fri Feb  1 10:19:44 CET 2013
   3022 	Handle case where POST data contains "key=" without value
   3023 	at the end and is not new-line terminated by invoking the
   3024 	callback with the "key" during MHD_destroy_post_processor (#2733). -CG
   3025 
   3026 Wed Jan 30 13:09:30 CET 2013
   3027 	Adding more 'const' to allow keeping of reason phrases in ROM.
   3028 	(see mailinglist). -CG/MV
   3029 
   3030 Tue Jan 29 21:27:56 CET 2013
   3031 	Make code work with PlibC 0.1.7 (which removed plibc_init_utf8).
   3032 	Only relevant for W32. Fixes #2734. -CG
   3033 
   3034 Sat Jan 26 21:26:48 CET 2013
   3035 	Fixing regression introduced Jan 6 (test on data_size instead
   3036 	of total_size. -CG
   3037 
   3038 Fri Jan 11 23:21:55 CET 2013
   3039 	Also return MHD_YES from MHD_destroy_post_processor if
   3040 	we did not get '\r\n' in the upload. -CG
   3041 
   3042 Sun Jan  6 21:10:13 CET 2013
   3043 	Enable use of "MHD_create_response_from_callback" with
   3044 	body size of zero. -CG
   3045 
   3046 Tue Dec 25 16:16:30 CET 2012
   3047 	Releasing libmicrohttpd 0.9.24. -CG
   3048 
   3049 Tue Dec 18 21:18:11 CET 2012
   3050 	Given both 'chunked' encoding and 'content-length',
   3051 	ignore the 'content-length' header as per RFC. -ES
   3052 
   3053 Thu Dec  6 10:14:44 CET 2012
   3054 	Force adding "Connection: close" header to response if
   3055 	client asked for connection to be closed (so far, we
   3056 	did close the connection, but did not send the
   3057 	"Connection: close" header explicitly, which some clients
   3058 	seem to dislike. (See discussion on mailinglist).
   3059 	Also, if there is already a transfer-encoding other
   3060 	than 'chunked' set by the application, we also now close
   3061 	the connection if the response is of unknown size. -CG
   3062 
   3063 Wed Dec  5 19:22:26 CET 2012
   3064 	Fixing parameter loss of POST parameters with IE8 and Chrome
   3065 	in the PostProcessor as the code failed to properly handle
   3066 	partial data. -MM
   3067 
   3068 Fri Nov  9 21:36:46 CET 2012
   3069 	Releasing libmicrohttpd 0.9.23. -CG
   3070 
   3071 Thu Nov  8 22:32:59 CET 2012
   3072 	Ship our own version of tsearch and friends if not provided by platform,
   3073 	so that MHD works nicely on Android. -JJ
   3074 
   3075 Mon Oct 22 13:05:01 CEST 2012
   3076 	Immediately do a second read if we get a full buffer from
   3077 	TLS as there might be more data in the TLS buffers even if
   3078 	there is no activity on the socket. -CG
   3079 
   3080 Tue Oct 16 01:33:55 CEST 2012
   3081 	Consistently use "#ifdef" and "#ifndef" WINDOWS, and not
   3082 	sometimes "#if". -CG
   3083 
   3084 Sat Sep  1 20:51:21 CEST 2012
   3085 	Releasing libmicrohttpd 0.9.22. -CG
   3086 
   3087 Sat Sep  1 20:38:35 CEST 2012
   3088 	Adding configure option to allow selecting support for basic
   3089 	and digest authentication separately (#2525). -CG
   3090 
   3091 Thu Aug 30 21:12:56 CEST 2012
   3092 	Fixing URI argument parsing when string contained keys without
   3093 	equals sign (i.e. '&bar&') in the middle of the argument (#2531).
   3094 	Also replacing 'strstr' with more efficient 'strchr' when
   3095 	possible. -CG
   3096 
   3097 Tue Aug 21 14:36:17 CEST 2012
   3098 	Use "int" instead of "enum X" in 'va_arg' calls to be nice to
   3099 	compilers that use 'short' (i.e. 8 or 16 bit) enums but pass
   3100 	enums still as "int" in varargs. (See discussion on mailinglist). -CG/MV
   3101 
   3102 Tue Aug 21 14:31:54 CEST 2012
   3103 	Reduce default size in post processor buffer (for small systems;
   3104 	performance impact on large systems should be minimal). -CG/MV
   3105 
   3106 Thu Jul 19 21:48:42 CEST 2012
   3107 	Releasing libmicrohttpd 0.9.21. -CG
   3108 
   3109 Thu Jul 19 11:34:50 CEST 2012
   3110 	Consistently use 'panic' function instead of ever directly
   3111 	calling 'abort ()'.  Eliminating unused mutex in SSL mode.
   3112 	Removing check in testcases that fails depending on which
   3113 	version of gnuTLS is involved. -CG
   3114 
   3115 Tue Jul 17 23:50:43 CEST 2012
   3116 	Stylistic code clean up.  Allowing lookup up of trailing values
   3117 	without keys using "MHD_lookup_connection_value" with a key of NULL
   3118 	(thus achieving consistency with the existing iterator API). -CG
   3119 
   3120 Tue Jul 17 22:37:05 CEST 2012
   3121 	Adding experimental (!) code for MHD operation without listen socket. -CG
   3122 
   3123 Tue Jul 17 22:15:57 CEST 2012
   3124 	Making sendfile test pass again on non-W32 systems. -CG
   3125 
   3126 Mon Jul  9 13:43:35 CEST 2012
   3127 	Misc changes to allow testcases to pass on W32. -LRN
   3128 
   3129 Sun Jul  8 15:05:31 CEST 2012
   3130 	Misc changes to fix build on W32. -LRN
   3131 
   3132 Fri Jun 22 11:31:25 CEST 2012
   3133 	Make sure sockets opened by MHD are non-inheritable by default (#2414). -CG
   3134 
   3135 Tue Jun 19 19:44:53 CEST 2012
   3136 	Change various uses of time(NULL) to new MHD_monotonic_time() function to
   3137 	make timeouts immune to the system real time clock changing. -MC
   3138 
   3139 Tue Jun 12 21:35:00 CEST 2012
   3140 	Adding 451 status code. -CG
   3141 
   3142 Thu May 31 13:33:45 CEST 2012
   3143 	Releasing 0.9.20. -CG
   3144 
   3145 Tue May 29 13:55:03 CEST 2012
   3146 	Fixed some testcase build issues with disabled post processor. -CG
   3147 
   3148 Tue May 29 13:45:15 CEST 2012
   3149 	Fixing bug where MHD failed to call connection termination callback
   3150 	if a connection either was closed due to read errors or if MHD
   3151 	was terminated with certain threading modes.  Added new
   3152 	termination code MHD_REQUEST_TERMINATED_READ_ERROR for the
   3153 	read-termination cause. -CG
   3154 
   3155 Thu Mar 15 23:47:53 CET 2012
   3156 	Eliminating code clone in tls connection read/write handlers. -CG
   3157 
   3158 Fri Mar  2 23:44:56 CET 2012
   3159 	Making sure that MHD_get_connection_values iterates over the
   3160 	headers in the order in which they were received. -CG
   3161 
   3162 Wed Feb  1 09:39:12 CET 2012
   3163 	Fixed compilation problem on MinGW. -BS
   3164 
   3165 Tue Jan 31 17:50:24 CET 2012
   3166 	Releasing 0.9.19. -CG
   3167 
   3168 Mon Jan 30 20:02:34 CET 2012
   3169 	Fixed handling of garbage prior to first multipart boundary
   3170 	(#2126). -woof
   3171 
   3172 Fri Jan 27 11:00:43 CET 2012
   3173 	Fixed postprocessor failure for applications that enclosed boundary
   3174 	in quotes (#2120). -woof
   3175 
   3176 Tue Jan 24 16:07:53 CET 2012
   3177 	Added configure check for sin_len in 'struct sockaddr' and adding
   3178 	code to initialize this field if it exists now. -CG
   3179 
   3180 Mon Jan 23 14:02:26 CET 2012
   3181 	Fixed double-free if specified cipher was not valid (during
   3182 	MHD_daemon_start).  Releasing 0.9.18. -CG
   3183 
   3184 Thu Jan 19 22:11:12 CET 2012
   3185 	Switch to non-blocking sockets for all systems but Cygwin
   3186 	(we already used non-blocking sockets for GNU/Linux); also
   3187 	use non-blocking sockets on Cygwin for HTTPS as this is
   3188 	required to avoid DoS-by-partial-record via gnutls.  On
   3189 	Cygwin, #1824 implies that we need to use blocking sockets
   3190 	for HTTP on Cygwin for now. -CG
   3191 
   3192 Thu Jan 19 17:46:05 CET 2012
   3193 	Fixing use of uninitialized 'earliest_deadline' variable in
   3194 	MHD_get_timeout which can lead to returning an incorrect
   3195 	(too early) timeout (#2085). -tclaveirole
   3196 
   3197 Thu Jan 19 13:31:27 CET 2012
   3198 	Fixing digest authentication for GET requests with URI arguments
   3199 	(#2059). -CG
   3200 
   3201 Sat Jan  7 17:30:48 CET 2012
   3202 	Digest authentication expects nonce count in base 16, not base 10
   3203 	(#2061). -tclaveirole
   3204 
   3205 Thu Jan  5 22:01:37 CET 2012
   3206 	Partial fix for #2059, digest authentication with GET arguments. -CG
   3207 
   3208 Thu Dec  1 15:22:57 CET 2011
   3209 	Updated authorization_example.c to actually demonstrate the current
   3210 	MHD API. -SG
   3211 
   3212 Mon Nov 21 18:51:30 CET 2011
   3213 	Added option to suppress generation of the 'Date:' header to be
   3214 	used on embedded systems without RTC.  Documented the new option
   3215 	and the configure options. -CG
   3216 
   3217 Sat Nov 19 20:08:40 CET 2011
   3218 	Releasing 0.9.17. -CG
   3219 
   3220 Fri Nov 18 20:17:22 CET 2011
   3221 	Fixing return value of MHD_get_timeout if timeouts are not in use.
   3222         (#1914). -rboulton
   3223 
   3224 Sun Nov 13 13:34:29 CET 2011
   3225 	Trying to fix accidental addition of a "Connection: close" footer
   3226 	under certain (rare) circumstances. -CG
   3227 
   3228 Fri Nov  4 10:03:00 CET 2011
   3229 	Small updates to the tutorial.
   3230 	Releasing 0.9.16. -CG
   3231 
   3232 Thu Nov  3 10:14:59 CET 2011
   3233 	shutdown(RDWR) fails on OS X after shutdown(RD), so only use
   3234 	shutdown(WR) if we already closed the socket for reading (otherwise
   3235 	OS X might not do shutdown (WR) at all). -CG
   3236 
   3237 Tue Nov  1 18:51:50 CET 2011
   3238 	Force adding of 'Connection: close' to the header if we (for whatever
   3239 	reason) are shutting down the socket for reading (see also
   3240 	#1760). -CG
   3241 
   3242 Thu Oct 27 14:16:34 CEST 2011
   3243 	Treat EAGAIN the same way as EINTR (helps on W32). -LRN
   3244 
   3245 Wed Oct 12 10:40:12 CEST 2011
   3246 	Made sockets blocking again for non-Linux platforms as non-blocking
   3247 	sockets cause problems (#1824) on Cygwin but offer better performance
   3248 	on Linux (see change on August 11 2011). -CG/pross
   3249 
   3250 Fri Oct  7 19:50:07 CEST 2011
   3251  	Fixed problems with testcases on W32. -LRN
   3252 
   3253 Fri Sep 30 17:56:36 CEST 2011
   3254 	Fixed MHD_CONNECTION_OPTION_TIMEOUT for HTTPS (#1811). -CG
   3255 
   3256 Wed Sep 28 08:37:55 CEST 2011
   3257 	Releasing libmicrohttpd 0.9.15. -CG
   3258 
   3259 Tue Sep 27 13:07:36 CEST 2011
   3260 	Added ability to access URL arguments of the form 'url?foo' (without
   3261 	'=').  Added testcase and updated documentation accordingly. -CG
   3262 
   3263 Mon Sep 26 21:24:00 CEST 2011
   3264 	Only run response cleanup testcase if curl binary was found by
   3265 	configure. -CG
   3266 
   3267 Wed Sep 21 09:53:18 CEST 2011
   3268 	Reverting to using pipes for signalling select on non-Linux
   3269 	platforms where shutdown-on-listen-sockets does not work. -WB/CG
   3270 
   3271 Mon Sep 19 14:06:30 CEST 2011
   3272 	Fixing problem introduced with prompt response cleanup code. -CG
   3273 
   3274 Wed Sep 14 13:43:26 CEST 2011
   3275 	Fixing minor memory leak if daemon with HTTPS support failed to
   3276 	initialize (#1766). -CG
   3277 
   3278 Tue Sep 13 09:47:58 CEST 2011
   3279 	Try to release responses more promptly upon connection termination. -CG
   3280 
   3281 Mon Sep 12 10:20:28 CEST 2011
   3282 	Releasing libmicrohttpd 0.9.14. -CG
   3283 
   3284 Mon Sep 12 10:05:36 CEST 2011
   3285 	Added new function to allow setting of a custom timeout value
   3286 	for an individual connection (the MHD_set_connection_option is
   3287 	more generic, but this is currently the only use). -CG
   3288 
   3289 Sat Sep 10 07:30:12 CEST 2011
   3290 	Documenting that MHD_CONNECTION_INFO_GNUTLS_CLIENT_CERT is not
   3291 	implemented and will not be implemented, and what to use instead. -CG
   3292 
   3293 Fri Sep  9 13:42:20 CEST 2011
   3294 	Added testcase to demonstrate that response cleanup calling is
   3295 	working. No bug was found. -CG
   3296 
   3297 Thu Aug 18 11:05:16 CEST 2011
   3298 	Fixed bug with wrong state transition if callback returned
   3299 	MHD_CONTENT_READER_END_OF_STREAM causing spurious extra callbacks
   3300 	to the handler (thanks to Jan Seeger for pointing it out). -CG/JS
   3301 
   3302 Thu Aug 11 11:40:03 CEST 2011
   3303 	Changing sockets to be non-blocking as suggested by Eivind Sarto
   3304 	on the mailinglist. -CG
   3305 
   3306 Mon Jul 25 16:13:15 CEST 2011
   3307 	Added a logo. -CG
   3308 
   3309 Sat Jul 16 22:42:10 CEST 2011
   3310 	Change type of nonce to 'unsigned long int' to match return type
   3311 	from 'strtoul'.  Fixes ERANGE check which would have previously
   3312 	failed. -CG
   3313 
   3314 Wed Jul 13 09:26:17 CEST 2011
   3315 	Fixing HTTP error status strings for certain high-numbered status codes.
   3316 	Added support for some more (non-standard) status codes.
   3317 	Releasing libmicrohttpd 0.9.13. -CG
   3318 
   3319 Thu Jul  7 10:24:20 CEST 2011
   3320 	Adding performance measurements. -CG
   3321 
   3322 Thu Jun 23 14:21:13 CEST 2011
   3323 	Releasing libmicrohttpd 0.9.12. -CG
   3324 
   3325 Wed Jun 22 14:32:23 CEST 2011
   3326 	Force closing connection if either the client asked it or
   3327 	if the response contains 'Connection: close' (so far,
   3328 	only the client's request was considered). -CG/RV
   3329 
   3330 Wed Jun 22 10:37:35 CEST 2011
   3331 	Removing listen socket from poll/select sets in
   3332 	MHD_USE_THREAD_PER_CONNECTION mode; using 'shutdown'
   3333 	on connection sockets to signal termination instead. -CG
   3334 
   3335 Wed Jun 22 10:25:13 CEST 2011
   3336 	Eliminate unnecessary (and badly synchronized) calls to
   3337 	MHD_get_timeout in MHD_USE_THREAD_PER_CONNECTION mode.
   3338 	Document that this is not acceptable. -CG
   3339 
   3340 Tue Jun 21 13:54:59 CEST 2011
   3341 	Fixing tiny memory leak in SSL code from 'gnutls_priority_init'.
   3342 	Fixing data race between code doing connection shutdown and
   3343 	connection cleanup.
   3344 	Changing code to reduce connection cleanup cost from O(n) to O(1).
   3345 	Cleaning up logging code around 'connection_close_error'. -CG
   3346 
   3347 Sat Jun 11 13:05:12 CEST 2011
   3348 	Replacing use of sscanf by strtoul (#1688). -CG/bplant
   3349 
   3350 Fri Jun  3 15:26:42 CEST 2011
   3351 	Adding MHD_CONNECTION_INFO_DAEMON to obtain MHD_Daemon
   3352 	responsible for a given connection. -CG
   3353 
   3354 Wed May 25 14:23:20 CEST 2011
   3355 	Trying to fix stutter problem on timeout described by
   3356 	David Myers on the mailinglist (5/10/2011). -CG
   3357 
   3358 Fri May 20 22:11:55 CEST 2011
   3359 	Fixed bug in testcase setup code causing crashes in
   3360 	tls_session_timeout_test on some systems.
   3361 	Releasing libmicrohttpd 0.9.11. -CG
   3362 
   3363 Fri May 20 19:34:59 CEST 2011
   3364 	Fixed bug in parsing multipart/form-data with post processor where
   3365 	the code failed to add a 0-terminator in the correct position. -PP
   3366 
   3367 Thu May 12 14:40:46 CEST 2011
   3368 	Fixed bug where if multiple HTTP request messages are piped in at once,
   3369 	microhttpd would call the handler with the wrong upload_data_size. -HZM
   3370 
   3371 Thu May 12 14:40:08 CEST 2011
   3372 	Documented possible issue with off_t being sometimes
   3373 	32-bit and sometimes 64-bit depending on #includes. -CG
   3374 
   3375 Sun May  8 21:52:47 CEST 2011
   3376 	Allow MHD_SIZE_UNKNOWN to be used in conjunction with
   3377 	MHD_create_response_from_fd (fixing #1679). -TG
   3378 
   3379 Wed Apr 27 16:11:18 CEST 2011
   3380 	Releasing libmicrohttpd 0.9.10. -CG
   3381 
   3382 Fri Apr  8 11:40:35 CEST 2011
   3383 	Workaround for cygwin poll brokenness. -TS
   3384 
   3385 Sun Apr  3 13:56:52 CEST 2011
   3386 	Fixing compile error on OS X. -CG
   3387 
   3388 Wed Mar 30 12:56:09 CEST 2011
   3389 	Initialize tv_usec in MHD_USE_THREAD_PER_CONNECTION with select
   3390 	and per-connection timeout. -CG
   3391 
   3392 Tue Mar 29 14:15:13 CEST 2011
   3393 	Releasing libmicrohttpd 0.9.9. -CG
   3394 
   3395 Tue Mar 29 14:11:19 CEST 2011
   3396 	Fixed call to mmap for memory pool, extended testcase to cover
   3397 	POLL. -CG
   3398 
   3399 Wed Mar 23 23:24:25 CET 2011
   3400 	Do not use POLLIN when we only care about POLLHUP (significantly
   3401 	improves performance when using MHD_USE_THREAD_PER_CONNECTION
   3402 	in combination with MHD_USE_POLL). -ES
   3403 
   3404 Sun Mar 20 09:16:53 CET 2011
   3405 	Fixing race when using MHD_USE_THREAD_PER_CONNECTION in combination
   3406 	with MHD_USE_POLL. -CG
   3407 
   3408 Fri Mar 18 13:23:47 CET 2011
   3409 	Removing MSG_DONTWAIT which should not be needed and was presumably
   3410 	causing problems with EAGAIN under certain circumstances. -ES
   3411 
   3412 Fri Mar 11 22:25:29 CET 2011
   3413 	Fixing bug in MHD_create_response_from_fd_at_offset with non-zero offsets. -ES
   3414 
   3415 Sat Mar  5 22:00:36 CET 2011
   3416 	Do not use POLLRDHUP, which causes build errors on OS X / OpenSolaris
   3417 	(#1667). -CG
   3418 
   3419 Fri Mar  4 10:24:04 CET 2011
   3420 	Added new API to allow MHD server to initiate connection to
   3421 	client (special use-case for servers behind NAT), thereby
   3422 	addressing #1661 (externally created connections).
   3423 	Releasing libmicrohttpd 0.9.8. -CG
   3424 
   3425 Fri Mar  4 10:07:18 CET 2011
   3426 	Avoid using a pipe for signalling as well, just use server
   3427 	socket shutdown (also for thread-per-connection). -CG
   3428 
   3429 Thu Mar  3 21:42:47 CET 2011
   3430 	Fixing issue where Base64 decode fails when char is defined
   3431         as unsigned char  (Mantis 1666). -CG/tmayer
   3432 
   3433 Tue Mar  1 13:58:04 CET 2011
   3434 	Allow use of 'poll' in combination with the external select mode.
   3435 	Avoid using pthread signals (SIGALRM), use pipe instead.
   3436 	Corrected timeout calculation (s vs. ms). -CG
   3437 
   3438 Wed Feb 23 14:21:44 CET 2011
   3439 	Removing useless code pointed out by Eivind Sarto. -CG
   3440 
   3441 Fri Feb 18 11:03:59 CET 2011
   3442 	Handle large (>2 GB) file transfers with sendfile on 32-bit
   3443 	systems better; handle odd sendfile failures by libc/kernel
   3444 	by falling back to standard 'SEND'. -CG
   3445 
   3446 Sun Feb 13 10:52:29 CET 2011
   3447 	Handle gnutls receive error(s) for interrupted SSL
   3448 	connections better. -MS
   3449 	Releasing libmicrohttpd 0.9.7. -CG
   3450 
   3451 Fri Feb 11 10:15:38 CET 2011
   3452 	Fixing parameter ordering in documentation (#1659). -wellska
   3453 
   3454 Thu Jan 27 10:51:39 CET 2011
   3455 	Disable 'EXTRA_CHECKS's by default as suggested in #1652
   3456  	(I guess it is time). -CG/timn
   3457 
   3458 Thu Jan 27 10:48:55 CET 2011
   3459 	Removing bogus assertion in basic authentication code (#1651). -CG/timn
   3460 
   3461 Tue Jan 25 14:10:45 CET 2011
   3462 	Releasing libmicrohttpd 0.9.6. -CG
   3463 
   3464 Mon Jan 24 16:36:35 CET 2011
   3465 	Fixing compilation error if DAUTH_SUPPORT was 0 (#1646). -CG/bplant
   3466 
   3467 Tue Jan 18 23:58:09 CET 2011
   3468 	Fixing hash calculation in digest auth; old function had
   3469 	collisions causing the browser to challenge users for
   3470 	authentication too often. -CG/AW
   3471 
   3472 Fri Jan 14 19:19:45 CET 2011
   3473 	Removing dead code, adding missing new symbols to export list.
   3474 	Fixed two missing NULL checks after malloc operations. -CG
   3475 
   3476 Mon Jan 10 14:07:33 CET 2011
   3477 	Releasing libmicrohttpd 0.9.5. -CG
   3478 
   3479 Wed Jan  5 15:20:11 CET 2011
   3480 	Fixing double-locking on non-Linux platforms when using
   3481 	MHD_create_response_from_fd (#1639). -CG
   3482 	Avoid use of strndup for better portability (#1636). -CG
   3483 
   3484 Tue Jan  4 13:07:21 CET 2011
   3485 	Added MHD_create_response_from_buffer, deprecating
   3486 	MHD_create_response_from_data.  Deprecating
   3487 	MHD_create_response_from_fd as well. -CG
   3488 
   3489 Sun Dec 26 00:02:15 CET 2010
   3490 	Releasing libmicrohttpd 0.9.4. -CG
   3491 
   3492 Sat Dec 25 21:57:14 CET 2010
   3493 	Adding support for basic authentication.
   3494 	Documented how to obtain client SSL certificates in tutorial. -MS
   3495 
   3496 Thu Dec 23 15:40:36 CET 2010
   3497 	Increasing nonce length to 128 to support digest authentication
   3498 	with Opera (see #1633).
   3499 
   3500 Mon Dec 20 21:22:57 CET 2010
   3501 	Added macro MHD_LONG_LONG to allow change of MHD's "long long" use
   3502 	to some other type on platforms that do not support "long long"
   3503 	(Mantis #1631). -CG/bplant
   3504 
   3505 Sun Dec 19 19:54:15 CET 2010
   3506 	Added 'MHD_create_response_from_fd_at_offset'. -CG
   3507 
   3508 Sun Dec 19 15:16:16 CET 2010
   3509 	Fixing --enable and --disable configure options to behave properly. -CG
   3510 
   3511 Sun Dec 19 13:46:52 CET 2010
   3512 	Added option to specify size of stacks for threads created by MHD. -CG
   3513 
   3514 Tue Nov 23 09:41:00 CET 2010
   3515 	Releasing libmicrohttpd 0.9.3. -CG
   3516 
   3517 Thu Nov 18 23:10:36 CET 2010
   3518 	Fixing #1619 (testcases not working with NSS on Fedora). -CG/timn
   3519 
   3520 Thu Nov 18 22:55:58 CET 2010
   3521 	Fixing #1621 (socket not closed under certain circumstances). -CG/jaredc
   3522 
   3523 Wed Nov 17 12:16:53 CET 2010
   3524 	Allowing signalling of errors in generating chunked responses to
   3525 	clients (by closing connectins) using the new
   3526 	MHD_CONTENT_READER_END_WITH_ERROR ((size_t)-2) return value.  Also
   3527 	introducing MHD_CONTENT_READER_END_OF_STREAM constant instead
   3528 	of (size_t) -1 / SIZE_MAX.
   3529 
   3530 Sun Nov 14 20:45:45 CET 2010
   3531 	Adding API call to generate HTTP footers in response. -CG
   3532 
   3533 Sat Oct 16 12:38:43 CEST 2010
   3534 	Releasing libmicrohttpd 0.9.2. -CG
   3535 
   3536 Tue Oct 12 15:41:51 CEST 2010
   3537 	Fixed issue with data received via SSL being delayed in the
   3538 	GNUtls buffer if sender stopped transmitting (but did not close
   3539 	the connection) and MHD buffer size was smaller than last fragment,
   3540 	resulting in possibly significantly delayed processing of
   3541 	incoming data.  -CG
   3542 
   3543 Wed Sep 22 09:48:59 CEST 2010
   3544 	Changed port argument from 'unsigned short' to 'uint16_t'.
   3545 	Removed dead code when compiling with messages enabled.
   3546 	Minimal unrelated code cleanup. -CG
   3547 
   3548 Tue Sep 21 15:12:41 CEST 2010
   3549 	Use "size_t" for buffer size instead of "int". -CG
   3550 
   3551 Sat Sep 18 07:16:30 CEST 2010
   3552 	Adding support for SHOUTcast. -CG
   3553 
   3554 Wed Sep 15 09:33:46 CEST 2010
   3555 	Fixed double-free. -CG/ES
   3556 
   3557 Fri Sep 10 14:47:11 CEST 2010
   3558 	Releasing libmicrohttpd 0.9.1. -CG
   3559 
   3560 Fri Sep 10 14:29:37 CEST 2010
   3561 	Adding proper nonce counter checking for digest authentication. -CG/AA
   3562 
   3563 Sat Sep  4 21:55:52 CEST 2010
   3564 	Digest authentication now seems to be working. -CG/AA
   3565 
   3566 Wed Sep  1 13:59:16 CEST 2010
   3567 	Added ability to specify external unescape function.
   3568 	"microhttpd.h" now includes the right headers for GNU/Linux
   3569 	systems unless MHD_PLATFORM_H is defined (in which case it
   3570 	is assumed that the right headers were already determined by
   3571 	some configure-like process). -CG
   3572 
   3573 Tue Aug 31 15:39:25 CEST 2010
   3574 	Fixed bug with missing call to response cleanup in case of
   3575 	connection handling error (for example, after getting a SIGPIPE). -CG
   3576 
   3577 Tue Aug 24 11:39:25 CEST 2010
   3578 	Fixed bug in handling EAGAIN from GnuTLS (caused
   3579 	needlessly dropped SSL connections). -CG
   3580 
   3581 Sun Aug 22 16:49:13 CEST 2010
   3582 	Initial draft for digest authentication. -AA
   3583 
   3584 Thu Aug 19 14:15:01 CEST 2010
   3585 	Changed code to enable error messages and HTTPS by default;
   3586 	added option to disable post processor API (use
   3587 	breaks binary compatibility, should only be done
   3588 	for embedded systems that require minimal footprint). -CG
   3589 
   3590 Thu Aug 19 13:26:00 CEST 2010
   3591 	Patches for Windows to ease compilation trouble. -GT/CG
   3592 
   3593 Sat Aug 14 15:43:30 CEST 2010
   3594 	Fixed small, largely hypothetical leaks.
   3595 	Reduced calls to strlen for header processing. -CG
   3596 
   3597 Fri Aug  6 12:51:59 CEST 2010
   3598 	Fixing (small) memory leak on daemon-shutdown with
   3599 	SSL enabled. -CG/PG
   3600 
   3601 Thu Aug  5 22:24:37 CEST 2010
   3602 	Fixing timeout bug on systems that think it's still
   3603 	1970 (can happen if system time not initialized). -CG
   3604 
   3605 Mon Jul 26 10:46:57 CEST 2010
   3606 	Releasing libmicrohttpd 0.9.0. -CG
   3607 
   3608 Sun Jul 25 14:57:47 CEST 2010
   3609 	Adding support for sendfile on Linux.  Adding support
   3610 	for systemd-style passing of an existing listen socket
   3611 	as an option.  IPv6 sockets now only bind to IPv6
   3612 	(if platform supports this). -CG
   3613 
   3614 Sun Jul 25 11:10:45 CEST 2010
   3615 	Changed code to use external libgnutls code instead of
   3616 	the "fork".  Minor API changes for setting TLS options. -CG
   3617 
   3618 Sun Jun 13 10:52:34 CEST 2010
   3619 	Cleaned up example code. -CG
   3620 
   3621 Fri Apr 23 09:56:37 CEST 2010
   3622 	Do not return HTTP headers for requests without version
   3623 	numbers.  Do return HTTP version 1.0 if client requested
   3624 	HTTP version 1.1 (previously, we returned HTTP/1.1 even
   3625 	if the client specified HTTP/1.0).  -GM/CG
   3626 
   3627 Sat Mar 13 09:41:01 CET 2010
   3628 	Releasing libmicrohttpd 0.4.6. -CG
   3629 
   3630 Wed Mar 10 13:18:26 CET 2010
   3631 	Fixing bug in 100 CONTINUE replacement when handling POSTs
   3632 	(see report on mailinglist), with testcase. -CG/MC
   3633 
   3634 Tue Feb 23 09:16:15 CET 2010
   3635 	Added configure check for endianness to define WORDS_BIGENDIAN
   3636 	which fixes SSL support on big endian architectures. -JA/CG
   3637 
   3638 Sat Feb 20 10:01:09 CET 2010
   3639 	Added check for inconsistent options (MHD_OPTION_PROTOCOL_VERSION
   3640 	without MHD_USE_SSL) causing instant segfault. -JA/CG
   3641 
   3642 Tue Feb  9 20:31:51 CET 2010
   3643 	Fixed issue with poll doing busy waiting. -BK/CG
   3644 
   3645 Thu Jan 28 21:28:56 CET 2010
   3646 	Releasing libmicrohttpd 0.4.5. -CG
   3647 
   3648 Thu Jan 28 20:35:48 CET 2010
   3649 	Make sure addresses returned by memory pool are
   3650 	aligned (fixes bus errors on Sparc). -CG
   3651 
   3652 Thu Dec 17 20:26:52 CET 2009
   3653 	poll.h is not strictly required anymore. -ND
   3654 
   3655 Fri Dec  4 13:17:50 CET 2009
   3656 	Adding MHD_OPTION_ARRAY. -CG
   3657 
   3658 Mon Nov 16 14:41:26 CET 2009
   3659 	Fixed busy-loop in internal select mode for inactive
   3660 	clients with infinite connection timeout. -CG
   3661 
   3662 Thu Nov 12 16:19:14 CET 2009
   3663 	Adding support for setting a custom error handler for
   3664 	fatal errors (previously, the implementation always
   3665 	called 'abort' in these cases). -CG/ND
   3666 
   3667 Wed Nov 11 12:54:16 CET 2009
   3668 	Adding support for poll (alternative to select allowing
   3669 	for more than FD_SETSIZE parallel connections). -JM
   3670 
   3671 Wed Oct 28 20:26:00 CET 2009
   3672  	Releasing libmicrohttpd 0.4.4. -CG
   3673 
   3674 Wed Oct 14 14:37:37 CEST 2009
   3675 	Fixing (rare) deadlock due to SELECT missing SIGALRM by
   3676 	making all SELECT calls block for at most 1s.  While this
   3677 	can in (rare) situations delay the shutdown by 1s, I think
   3678 	this is preferable (both performance and possibly portability-wise)
   3679 	over using a pipe for the signal. -CG
   3680 
   3681 Sun Oct 11 14:57:29 CEST 2009
   3682 	Adding eCos license as an additional license for the
   3683 	non-HTTPS code of MHD. -CG
   3684 
   3685 Sun Oct 11 11:24:27 CEST 2009
   3686 	Adding support for Symbian. -MR
   3687 
   3688 Fri Oct  9 15:21:29 CEST 2009
   3689 	Check for error codes from pthread operations (to help with
   3690 	error diagnostics) and abort if something went wrong. -CG
   3691 
   3692 Thu Oct  8 10:43:02 CEST 2009
   3693 	Added check for sockets being '< FD_SETSIZE' (just to be safe). -CG
   3694 
   3695 Mon Oct  5 21:17:26 CEST 2009
   3696 	Adding "COOKIE" header string #defines. -CG
   3697 
   3698 Mon Oct  5 08:29:06 CEST 2009
   3699 	Documenting default values. -CG
   3700 
   3701 Fri Aug 28 22:56:47 CEST 2009
   3702  	Releasing libmicrohttpd 0.4.3. -CG
   3703 
   3704 Sun Aug 23 16:21:35 UTC 2009
   3705 	Allow MHD_get_daemon_info to return the daemon's listen socket.
   3706 	Includes a test case that uses this functionality to bind a server to
   3707 	an OS-assigned port, look the port up with getsockname, and curl it. -DR
   3708 
   3709 Tue Aug  4 00:14:04 CEST 2009
   3710 	 Fixing double-call to read from content-reader callback for first
   3711 	 data segment (as reported by Alex on the mailinglist). -CG
   3712 
   3713 Thu Jul 29 21:41:52 CEST 2009
   3714  	 Fixed issue with the code not using the "block_size" argument
   3715          given to MHD_create_response_from_callback causing inefficiencies
   3716 	 for values < 2048 and segmentation faults for values > 2048
   3717 	 (as reported by Andre Colomb on the mailinglist). -CG
   3718 
   3719 Sun May 17 03:29:46 MDT 2009
   3720  	 Releasing libmicrohttpd 0.4.2. -CG
   3721 
   3722 Fri May 15 11:00:20 MDT 2009
   3723 	 Grow reserved read buffer more aggressively so that we are not
   3724 	 needlessly stuck reading only a handful of bytes in each iteration. -CG
   3725 
   3726 Thu May 14 21:20:30 MDT 2009
   3727 	 Fixed issue where the "NOTIFY_COMPLETED" handler could be called
   3728 	 twice (if a socket error or timeout occurred for a pipelined
   3729 	 connection after successfully completing a request and before
   3730 	 the next request was successfully transmitted).  This could
   3731 	 confuse applications not expecting to see a connection "complete"
   3732 	 that they were never aware of in the first place. -CG
   3733 
   3734 Mon May 11 13:01:16 MDT 2009
   3735          Fixed issue where error code on timeout was "TERMINATED_WITH_ERROR"
   3736          instead of "TERMINATED_TIMEOUT_REACHED". -CG
   3737 
   3738 Wed Apr  1 21:33:05 CEST 2009
   3739          Added MHD_get_version(). -ND
   3740 
   3741 Wed Mar 18 22:59:07 MDT 2009
   3742 	 Releasing libmicrohttpd 0.4.1. -CG
   3743 
   3744 Wed Mar 18 17:46:58 MDT 2009
   3745 	 Always RECV/SEND with MSG_DONTWAIT to (possibly) address
   3746 	 strange deadlock reported by Erik on the mailinglist ---
   3747 	 and/or issues with blocking read after select on GNU/Linux
   3748 	 (see select man page under bugs). -CG
   3749 
   3750 Tue Mar 17 01:19:50 MDT 2009
   3751 	 Added support for thread-pools. -CG/RA
   3752 
   3753 Mon Mar  2 23:44:08 MST 2009
   3754 	 Fixed problem with 64-bit upload and download sizes and
   3755 	 "-1" being used to indicate "unknown" by introducing
   3756 	 new 64-bit constant "MHD_SIZE_UNKNOWN". -CG/DC
   3757 
   3758 Wed Feb 18 08:13:56 MST 2009
   3759 	 Added missing #include for build on arm-linux-uclibc. -CG/CC
   3760 
   3761 Mon Feb 16 21:12:21 MST 2009
   3762 	 Moved MHD_get_connection_info so that it is always defined,
   3763 	 even if HTTPS support is not enabled. -CG
   3764 
   3765 Sun Feb  8 21:15:30 MST 2009
   3766 	 Releasing libmicrohttpd 0.4.0. -CG
   3767 
   3768 Thu Feb  5 22:43:45 MST 2009
   3769 	 Incompatible API change to allow 64-bit uploads and downloads.
   3770 	 Clients must use "uint64_t" for the "pos"
   3771 	 argument (MHD_ContentReaderCallback) and the "off"
   3772 	 argument (MHD_PostDataIterator) and the "size"
   3773 	 argument (MHD_create_response_from_callback) now.
   3774 	 Also, "unsigned int" was changed to "size_t" for
   3775 	 the "upload_data_size" argument (MHD_AccessHandlerCallback),
   3776 	 the argument to MHD_OPTION_CONNECTION_MEMORY_LIMIT,
   3777 	 the "block_size" argument (MHD_create_response_from_callback),
   3778 	 the "buffer_size" argument (MHD_create_post_processor) and
   3779 	 the "post_data_len" argument (MHD_post_process).  You may
   3780 	 need to #include <stdint.h> before <microhttpd.h> from now on. -CG
   3781 
   3782 Thu Feb  5 20:21:08 MST 2009
   3783 	 Allow getting address information about the connecting
   3784 	 client after the accept call. -CG
   3785 
   3786 Mon Feb  2 22:21:48 MST 2009
   3787 	 Fixed missing size adjustment for offsets for %-encoded
   3788 	 arguments processed by the post processor (Mantis #1447). -CG/SN
   3789 
   3790 Fri Jan 23 16:57:21 MST 2009
   3791 	 Support charset specification (ignore) after content-type
   3792 	 when post-processing HTTP POST requests (Mantis #1443). -CG/SN
   3793 
   3794 Fri Dec 26 23:08:04 MST 2008
   3795 	 Fixed broken check for identical connection address. -CG
   3796 	 Making cookie parser more RFC2109 compliant (handle
   3797 	 spaces around key, allow value to be optional). -CG
   3798 
   3799 Sat Dec  6 18:36:17 MST 2008
   3800 	 Added configure option to disable checking for CURL support.
   3801 	 Added MHD_OPTION to allow specification of custom logger. -CG
   3802 
   3803 Tue Nov 18 01:19:53 MST 2008
   3804 	 Removed support for untested and/or broken SSL features
   3805 	 and (largely useless) options. -CG
   3806 
   3807 Sun Nov 16 16:54:54 MST 2008
   3808 	 Added option to get unparsed URI via callback.
   3809 	 Releasing GNU libmicrohttpd 0.4.0pre1. -CG
   3810 
   3811 Sun Nov 16 02:48:14 MST 2008
   3812 	 Removed tons of dead code. -CG
   3813 
   3814 Sat Nov 15 17:34:24 MST 2008
   3815 	 Added build support for code coverage analysis. -CG
   3816 
   3817 Sat Nov 15 00:31:33 MST 2008
   3818 	 Removing (broken) support for HTTPS servers with
   3819 	 anonymous (aka "no") certificates as well as
   3820 	 various useless dead code. -CG
   3821 
   3822 Sat Nov  8 02:18:42 MST 2008
   3823 	 Unset TCP_CORK at the end of transmitting a response
   3824 	 to improve performance (on systems where this is
   3825 	 supported). -MM
   3826 
   3827 Tue Sep 30 16:48:08 MDT 2008
   3828 	 Make MHD useful to Cygwin users; detect IPv6 headers
   3829 	 in configure.
   3830 
   3831 Sun Sep 28 14:57:46 MDT 2008
   3832 	 Unescape URIs (convert "%ef%e4%45" to "中国"). -CG
   3833 
   3834 Wed Sep 10 22:43:59 MDT 2008
   3835 	 Releasing GNU libmicrohttpd 0.4.0pre0. -CG
   3836 
   3837 Wed Sep 10 21:36:06 MDT 2008
   3838 	 Fixed data race on closing sockets during
   3839 	 shutdown (in one-thread-per-connection mode). -CG
   3840 
   3841 Thu Sep  4 23:37:18 MDT 2008
   3842 	 Fixed some boundary issues with processing
   3843 	 chunked requests; removed memmove from a
   3844 	 number of spots, in favor of using an index into
   3845 	 the current buffer instead. -GS
   3846 
   3847 Sun Aug 24 13:05:41 MDT 2008
   3848 	 Now handling clients returning 0 from response callback
   3849 	 as specified in the documentation (abort if internal
   3850 	 select is used, retry immediately if a thread per
   3851 	 connection is used). -CG
   3852 
   3853 Sun Aug 24 12:44:43 MDT 2008
   3854 	 Added missing reason phrase. -SG
   3855 
   3856 Sun Aug 24 10:33:22 MDT 2008
   3857 	 Fixed bug where MHD failed to transmit the response when
   3858 	 the client decided not to send "100 CONTINUE" during
   3859 	 a PUT/POST request. -CG
   3860 
   3861 Wed Jul 16 18:54:03 MDT 2008
   3862 	 Fixed bug generating chunked responses with chunk sizes
   3863 	 greater than 0xFFFFFF (would cause protocol violations). -CG
   3864 
   3865 Mon May 26 13:28:57 MDT 2008
   3866 	 Updated and improved documentation.
   3867 	 Releasing GNU libmicrohttpd 0.3.1. -CG
   3868 
   3869 Fri May 23 16:54:41 MDT 2008
   3870 	 Fixed issue with postprocessor not handling URI-encoded
   3871 	 values of more than 1024 bytes correctly. -CG
   3872 
   3873 Mon May  5 09:18:29 MDT 2008
   3874 	 Fixed date header (was off by 1900 years). -JP
   3875 
   3876 Sun Apr 13 01:06:20 MDT 2008
   3877 	 Releasing GNU libmicrohttpd 0.3.0. -CG
   3878 
   3879 Sat Apr 12 21:34:26 MDT 2008
   3880 	 Generate an internal server error if the programmer fails
   3881 	 to handle upload data correctly.  Tweaked testcases to
   3882 	 avoid running into the problem in the testcases.
   3883 	 Completed zzuf-based fuzzing testcases.  -CG
   3884 
   3885 Sat Apr 12 15:14:05 MDT 2008
   3886 	 Restructured the code (curl-testcases and zzuf testcases
   3887 	 are now in different directories; code examples are in
   3888 	 src/examples/).
   3889 	 Fixed a problem (introduced in 0.2.3) with handling very
   3890 	 large requests (the code did not return proper error code).
   3891 	 If "--enable-messages" is specified, the code now includes
   3892 	 reasonable default HTML webpages for various built-in
   3893 	 errors (such as request too large and malformed requests).
   3894 	 Without that flag, the webpages returned will still be
   3895 	 empty.
   3896 	 Started to add zzuf-based fuzzing-testcases (these require
   3897 	 the zzuf and socat binaries to be installed). -CG
   3898 
   3899 Fri Apr 11 20:20:34 MDT 2008
   3900 	 I hereby dub libmicrohttpd a GNU package. -Richard Stallman
   3901 
   3902 Sat Mar 29 22:36:09 MDT 2008
   3903 	 Fixed bugs in handling of malformed HTTP requests
   3904 	 (causing either NULL dereferences or connections to
   3905 	 persist until time-out, if any). -CG
   3906 
   3907 	 Updated and integrated TexInfo documentation. -CG
   3908 
   3909 Tue Mar 25 13:40:53 MDT 2008
   3910 	 Prevent multi-part post-processor from going to error
   3911 	 state when the input buffer is full and current token
   3912 	 just changes processor state without consuming any data.
   3913 	 Also, the original implementation would not consume any
   3914 	 input in process_value_to_boundary if there is no new
   3915 	 line character in sight. -AS
   3916 
   3917 	 Remove checks for request method after it finished writing
   3918 	 response footers as it's only _pipelined_ requests that
   3919 	 should not be allowed after POST or PUT requests.  Reusing
   3920 	 the existing connection is perfectly ok though.  And there
   3921 	 is no reliable way to detect pipelining on server side
   3922 	 anyway so it is the client's responsibility to not send new
   3923 	 data before it gets a response after a POST operation. -AS
   3924 
   3925 	 Clarified license in man page. Releasing
   3926          libmicrohttpd 0.2.3 -CG
   3927 
   3928 Sat Mar 22 01:12:38 MDT 2008
   3929 	 Releasing libmicrohttpd 0.2.2. -CG
   3930 
   3931 Mon Feb 25 19:13:53 MST 2008
   3932 	 Fixed a problem with sockets closed for reading ending up
   3933 	 in the read set under certain circumstances. -CG
   3934 
   3935 Wed Jan 30 23:15:44 MST 2008
   3936 	 Added support for nested multiparts to post processor.
   3937 	 Made sure that MHD does not allow pipelining for methods
   3938 	 other than HEAD and GET (and of course still also only
   3939 	 allows it for http 1.1).  Releasing libmicrohttpd 0.2.1.  -CG
   3940 
   3941 Mon Jan 21 11:59:46 MST 2008
   3942 	 Added option to limit number of concurrent connections
   3943 	 accepted from the same IP address. -CG
   3944 
   3945 Fri Jan  4 16:02:08 MST 2008
   3946 	 Fix to properly close connection if application signals
   3947 	 problem handling the request. - AS
   3948 
   3949 Wed Jan  2 16:41:05 MST 2008
   3950 	 Improvements and bugfixes to post processor implementation. - AS
   3951 
   3952 Wed Dec 19 21:12:04 MST 2007
   3953 	 Implemented chunked (HTTP 1.1) downloads (including
   3954 	 sending of HTTP footers).  Also allowed queuing of
   3955 	 a response early to suppress the otherwise automatic
   3956 	 "100 CONTINUE" response.  Removed the mostly useless
   3957 	 "(un)register handler" methods from the API.  Changed
   3958 	 the internal implementation to use a finite state
   3959 	 machine (cleaner code, slightly less memory consumption).
   3960 	 Releasing libmicrohttpd 0.2.0. - CG
   3961 
   3962 Sun Dec 16 03:24:13 MST 2007
   3963 	 Implemented handling of chunked (HTTP 1.1) uploads.
   3964 	 Note that the upload callback must be able to
   3965 	 process chunks in the size uploaded by the client,
   3966 	 MHD will not "join" small chunks into a big
   3967 	 contiguous block of memory (even if buffer space
   3968 	 would be available).  - CG
   3969 
   3970 Wed Dec  5 21:39:35 MST 2007
   3971 	 Fixed race in multi-threaded server mode.
   3972 	 Fixed handling of POST data when receiving a
   3973 	 "Connection: close" header (#1296).
   3974 	 Releasing libmicrohttpd 0.1.2. - CG
   3975 
   3976 Sat Nov 17 00:55:24 MST 2007
   3977 	 Fixed off-by-one in error message string matching.
   3978 	 Added code to avoid generating SIGPIPE on platforms
   3979 	 where this is possible (everywhere else, the main
   3980 	 application should install a handler for SIGPIPE).
   3981 
   3982 Thu Oct 11 11:02:06 MDT 2007
   3983 	 Releasing libmicrohttpd 0.1.1. - CG
   3984 
   3985 Thu Oct 11 10:09:12 MDT 2007
   3986 	 Fixing response to include HTTP status message. - EG
   3987 
   3988 Thu Sep 27 10:19:46 MDT 2007
   3989 	 Fixing parsing of "%xx" in URLs with GET arguments. - eglaysher
   3990 
   3991 Sun Sep  9 14:32:23 MDT 2007
   3992 	 Added option to compile debug/warning messages;
   3993 	 error messages are now disabled by default.
   3994 	 Modified linker option for GNU LD to not export
   3995 	 non-public symbols (further reduces binary size).
   3996 	 Releasing libmicrohttpd 0.1.0. - CG
   3997 
   3998 Sat Sep  8 21:54:04 MDT 2007
   3999 	 Extended API to allow for incremental POST
   4000 	 processing.  The new API is binary-compatible
   4001 	 as long as the app does not handle POSTs, but
   4002 	 since that maybe the case, we're strictly speaking
   4003 	 breaking backwards compatibility (since url-encoded
   4004 	 POST data is no longer obtained the same way). - CG
   4005 
   4006 Thu Aug 30 00:59:24 MDT 2007
   4007 	 Improving API to allow clients to associate state
   4008          with a connection and to be notified about request
   4009          termination (this is a binary-compatible change). - CG
   4010 	 Fixed compile errors under OS X. - HL
   4011 
   4012 Sun Aug 26 03:11:46 MDT 2007
   4013 	 Added MHD_USE_PEDANTIC_CHECKS option which enforces
   4014 	 receiving a "Host:" header in HTTP 1.1 (and sends a
   4015 	 HTTP 400 status back if this is violated). - CG
   4016 
   4017 Tue Aug 21 01:01:46 MDT 2007
   4018 	 Fixing assertion failure that occurred when a client
   4019 	 closed the connection after sending some data but
   4020 	 not the full headers. - CG
   4021 
   4022 Sat Aug 18 03:06:09 MDT 2007
   4023 	 Check for out of memory when adding headers to
   4024 	 responses.  Check for NULL key when looking
   4025 	 for headers.   If a content reader callback
   4026 	 for a response returns zero (has no data yet),
   4027 	 do not possibly fall into busy waiting when
   4028 	 using external select (with internal selects
   4029 	 we have no choice).  - CG
   4030 
   4031 Wed Aug 15 01:46:44 MDT 2007
   4032 	 Extending API to allow timeout of connections.
   4033 	 Changed API (MHD_create_response_from_callback) to
   4034 	 allow user to specify IO buffer size.
   4035 	 Improved error handling.
   4036          Released libmicrohttpd 0.0.3. - CG
   4037 
   4038 Tue Aug 14 19:45:49 MDT 2007
   4039 	 Changed license to LGPL (with consent from all contributors).
   4040          Released libmicrohttpd 0.0.2. - CG
   4041 
   4042 Sun Aug 12 00:09:26 MDT 2007
   4043 	 Released libmicrohttpd 0.0.1. - CG
   4044 
   4045 Fri Aug 10 17:31:23 MDT 2007
   4046 	 Fixed problems with handling of responses created from
   4047 	 callbacks.  Allowing accept policy callback to be NULL
   4048 	 (to accept from all).  Added minimal fileserver example.
   4049 	 Only send 100 continue header when specifically requested. - CG
   4050 
   4051 Wed Aug  8 01:46:06 MDT 2007
   4052 	 Added pool allocation and connection limitations (total
   4053 	 number and memory size).  Released libmicrohttpd 0.0.0. - CG
   4054 
   4055 Tue Jan  9 20:52:48 MST 2007
   4056 	 Created project build files and updated API. - CG