libmicrohttpd

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

ChangeLog (157663B)


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