libmicrohttpd

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

ChangeLog (157420B)


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