I'm also glad I selected this too at this time for SentryPeer.
Congratulations!

On Mon, 20 Dec 2021, 00:44 silvioprog, <silviop...@gmail.com> wrote:

> Thanks a lot for this new release! 🍻
>
> On Sun, Dec 19, 2021 at 1:13 PM Evgeny Grin <k...@yandex.ru> wrote:
>
>> Dear all,
>>
>> I'm very glad to finally announce the new release of GNU libmicrohttpd
>> library version 0.9.74.
>> This release brings a lot of fixes and improvements, and
>> important new features.
>> The most significant addition is the new experimental
>> implementation of WebSockets contributed by David Gausmann. This
>> implementation is not fully tested yet so currently it is disabled
>> by default.
>> Other changes include a lot of improvements and clarifications
>> in doxy comments in microhttpd.h header file, improved compliance
>> with the RFC HTTP specifications, the new implementation of reply
>> header forming, the new implementation of request chunked encoding
>> parsing, new automatic error replies, internal optimisations, and
>> many important fixes, including fixes for long-standing bugs.
>>
>> More detailed list of notable changes:
>>
>> API changes:
>> + Added new function MHD_get_reason_phrase_len_for().
>> + Added MHD_CONNECTION_INFO_HTTP_STATUS type of information
>>    queried by MHD_get_connection_info().
>> + Added new response flag MHD_RF_SEND_KEEP_ALIVE_HEADER to force
>>    sending of "keep-alive" header even if not required by RFC.
>> + Added new response creation function
>>    MHD_create_response_from_buffer_with_free_callback_cls() with
>>    custom cleanup callback.
>> + Added new response flag MHD_RF_HTTP_1_0_COMPATIBLE_STRICT with
>>    the same functionality as existing MHD_RF_HTTP_VERSION_1_0_ONLY
>>    flag. The old flag will be deprecated.
>> + Added new response flag MHD_RF_HTTP_1_0_SERVER with the same
>>    functionality as existing MHD_RF_HTTP_VERSION_1_0_RESPONSE flag.
>>    The old flag will be deprecated.
>>
>> New features:
>> + Added experimental WebSockets extension with separate header.
>>    Disabled by default as it is not fully tested yet.
>> + Added '--enable-sanitizers[=address,undefined,leak,user-poison]'
>>    configure parameter (instead of '--enable-sanitizer'),
>>    implemented custom memory poisoning for memory pools.
>>
>> Improvements and enhancements:
>> * Doxy function descriptions was corrected, clarified, extended,
>>    and improved. Now it should be much easier to learn MHD just by
>>    reading the headers.
>> * Completely rewritten reply header forming. New implementation is
>>    more robust, simpler maintainable and expandable, and better
>>    follows RFC HTTP specifications.
>> * Performance improvements: now HTTP version and request method are
>>    decoded one time only (previously MHD used string comparison many
>>    times during processing the data).
>> * Rewritten request chunked payload decoding. The new
>>    implementation better conforms to the HTTP RFC, detects format
>>    problems earlier, replies to the clients with description of
>>    detected problems, handles untypical (but syntactically correct)
>>    values properly.
>> * Added special replies for wrong/unsupported HTTP versions in
>>    requests, broken HTTP chunked encoding in requests,
>> * As required by HTTP RFC, added automatic error replies if client
>>    used broken chunked encoding, too large chunk size, too large
>>    payload size, or broken Content-Length header.
>> * Optimized connection's memory pool handling.
>> * Changed timeout precision from one second to one millisecond.
>> * Added some checks for incorrect user data, reporting problems in
>>    MHD log.
>> * Improved performance of hash calculations functions by using
>>    compiler built-ins (if available).
>> * Implemented SHA-1 calculations (required for WebSockets).
>> * Added universal MSVC project that works with any (sufficiently
>>    new) version of MSVC.
>> * Developed simple HTTP client to test MHD under very special
>>    conditions.
>> * Implemented 45 new tests.
>> * Improved existing tests to test more aspects of MHD.
>> * Added check for correct results of system and libcurl functions.
>> * Response headers are checked during forming of responses.
>> * HTTPS tests were improved.
>> * Added rebuild on W32 of all required files if files are missing.
>> * Many internal optimisations and improvements.
>>
>> Functional changes:
>> * Keep-alive header is omitted by default for HTTP/1.1 connections.
>>    Use of header can be enforced by response flag.
>> * Chunked encoding is used for HTTP/1.1 non-keep-alive connections
>>    for responses with unknown size. Previously MHD used "indication
>>    of the end of the response by closing connection" in such cases,
>>    however it is not correct for HTTP/1.1 connections as per HTTP
>>    RFC.
>> * As required by HTTP RFC, use HTTP/1.1 version instead of HTTP/1.0
>>    in reply headers when client is HTTP/1.0 . HTTP/1.0 version can
>>    be enforced by response flag.
>> * User response headers are used in replies in the same order as
>>    was added by application.
>> * Allowed tab characters in response header values.
>> * All custom "Connection:" response headers are automatically
>>    combined into single "Connection:" header.
>> * "keep-alive" token silently dropped from custom "Connection:"
>>    response header. "Keep-alive" cannot be enforced and used
>>    automatically if possible.
>> * Allow tab character in custom response header value.
>> * Disallow space character in custom response header value.
>> * Do not allow responses with 1xx codes for HTTP/1.0 requests.
>> * Detected and reported incorrect "Upgrade" responses.
>> * W32 targets are changed to Vista+ by default. XP is supported
>>    still.
>>
>> Fixes:
>> # Fixed short busy-waiting (up to one second) when connection is
>>    going to be expired and closed.
>> # Fixed handling of errors during start of new connection, fixed
>>    inability to accept new connections in thread-per-connection mode
>>    due to the missing decrement of number of daemon's connections if
>>    start of new thread is failed.
>> # Fixed incorrect parsing of LFLF, LFCR, CRCR, and bare CR as
>>    single linefeed in request header and request chunked payload.
>>    Now only CRLF or bare LF are recognized as linefeed.
>> # Fixed response chunked encoding handling. Now it works properly
>>    with non-keep-alive connection, with fixed size replies (if
>>    chunked was enforced by header), and in other situations.
>> # Other fixes for chunked replies.
>> # Fixed handling of custom connection timeout in thread-per-
>>    connection mode.
>> # Fixed wrongly used MHD_REQUEST_TERMINATED_COMPLETED_OK code for
>>    application notification when MHD_REQUEST_TERMINATED_WITH_ERROR
>>    code must be used.
>> # Fixed code MHD_REQUEST_TERMINATED_READ_ERROR not reported (code
>>    MHD_REQUEST_TERMINATED_WITH_ERROR was incorrectly used instead).
>> # Fixed handling of request chunked encoding with untypical
>>    formatting.
>> # Fixed processing of last part of hex-encoded values under
>>    certain conditions.
>> # Fixed value returned for MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE.
>> # Fixed returned value for MHD_FEATURE_AUTOSUPPRESS_SIGPIPE on W32,
>>    now it is MHD_YES as W32 does not need SIGPIPE suppression.
>> # Fixed portability of bitwise NOT for enums values.
>> # Fixed SHA-256 and MD5 calculations with unaligned data.
>> # Fixed incorrect caseless matching for HTTP version.
>> # Fixed incorrect caseless matching for request method.
>> # Fixed compatibility with old GnuTLS versions.
>> # Fixed compiler warnings on 32-bits platforms.
>> # Fixed blocking sockets setting in tests and examples for W32.
>> # Fixed examples to really use libmagic if present.
>> # HTTPS tests were fixed.
>> # Fixed libcurl test with case-insensitive match for HTTP methods,
>>    method names must use case-sensitive match.
>> # Fixed tests compatibility with old libcurl versions.
>> # Fixed build on W32 with llvm-dlltool (this tool is too
>>    oversimplified)
>>
>>
>> You can download GNU libmicrohttpd from
>>
>> * https://ftp.gnu.org/gnu/libmicrohttpd/ and all GNU FTP mirrors.
>> * Our git repository at https://gnunet.org/git/libmicrohttpd.git
>>
>> Please report bugs to our bugtracker at
>> https://bugs.gnunet.org/set_project.php?project_id=10.
>>
>> The documentation (including a reference manual and tutorial) can be
>> found at https://gnu.org/s/libmicrohttpd.
>>
>> --
>> Best Wishes,
>> Evgeny
>>
>>
>
> --
> Silvio Clécio
>

Reply via email to