libmicrohttpd

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

ChangeLog (156990B)


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