libmicrohttpd

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

ChangeLog (156740B)


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