[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libmicrohttpd] 01/04: ChangeLog updated
From: |
gnunet |
Subject: |
[libmicrohttpd] 01/04: ChangeLog updated |
Date: |
Sun, 19 Dec 2021 16:59:46 +0100 |
This is an automated email from the git hooks/post-receive script.
karlson2k pushed a commit to branch master
in repository libmicrohttpd.
commit c229373f236f5e84b3c1c437442f7cc850d26a72
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Sat Dec 18 15:00:17 2021 +0300
ChangeLog updated
---
ChangeLog | 307 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 307 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 728cd156..1d65f182 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,313 @@
+December 2021
+ Fixed doxy for MHD_suspend_connection().
+ Some code improvements for new test test_client_put_stop.
+ Added special log message if thread creation failed due to system limits.
+ Fully restructured new_connection_process_() to correctly handle errors,
+ fixed missing decrement of number of daemon connections if any error
+ encountered, fixed app notification of connection termination when app has
+ not been notified about connection start, fixed (highly unlikely) reset of
+ the list of connections if reached daemon's connections limit.
+ configure: fixed some compiler warnings reported in config.log.
+ Fixed tests on FreeBSD to support system-limited rate of RST packets and
+ 'blackhole' system setting. -EG
+ Fixed tests for libmagic to really use libmagic in examples. -CG
+ Used tricks in code formatting to workaround uncrustify bugs.
+ configure: improved compatibility with various shells.
+ configure: added selective enable of sanitizers.
+ Fixed compatibility with old GnuTLS versions.
+ Fixed tests compatibility with old libcurl versions.
+ Fixed busy-waiting in test_timeout (fixed CPU load spikes in the test).
+ test_https_time_out: check rewritten, previously it is was no-op.
+ test_upgrade{,_large}: fixed passing of socket value to GnuTLS on W32.
+ Simplified Makefile for HTTPS tests.
+ Added detection of old broken GnuTLS builds (on RHEL6 and clones) and
+ disabled some tests broken with these builds.
+ Muted compiler warnings with old libcurl versions.
+ Reworked dlltool support: added support for weakened oversimplified
+ half-broken llvm-dlltool
+ Silenced MS lib tool warning and MS lib tool invocation.
+ Added Makefiles rules for automatic regeneration of all required files if
+ anything is missing.
+ Added Makefile silent rules support for W32 RC and W32 static libs.
+ Added local patches for autotools (mainly for libtool) to build MHD
+ correctly on modern MinGW64/Clang. -EG
+
+November 2021
+ Clarified comments and doxy for MHD_str* and related tests.
+ MHD_uint32_to_strx(): rewritten for readability and minor optimization,
+ used indexes instead of pointers.
+ Documented in doxy how to use MHD_AccessHandlerCallback.
+ mhd_sockets: added more network error codes.
+ W32 socket pair: set TCP_NODELAY to avoid unwanted buffering and delays.
+ Additional doxy fixes in microhttpd.h.
+ Fixed blocking sockets setting in tests and examples for W32.
+ Added checks for fcntl() results in tests and examples.
+ Added series of tests based on simple HTTP client implementation developed
+ for testing of MHD.
+ Renamed 'early_response' connection flag to 'discard_request' and reworked
+ handling of connection's flags.
+ Clarified request termination reasons doxy, fixed reporting of
+ MHD_REQUEST_TERMINATED_READ_ERROR (previously this code was not really used
+ in reporting).
+ Enforce all libcurl tests exit code to be zero or one.
+ Rewritten client upload processing: removed redundant checks, fixed
+ skipping of chunk closure when not data is not received yet, fixed skipping
+ of the last LF in termination chunk, handle correctly chunk sizes with more
+ than 16 digits (leading zeros are valid according to HTTP RFC), fixed
+ handling of CRCR, LFCR, LFLF, and bare CR as single line delimiters, report
+ error when invalid chunk format is received without waiting to receive
+ (possibly missing) end of the line, reply to the client with special error
+ if chunk size is too large to be handled by MHD (>16 EiB).
+ Added error reply if client used too large request payload (>16 EiB).
+ Fixed return value for MHD_FEATURE_AUTOSUPPRESS_SIGPIPE on W32, now it
+ returns MHD_YES as W32 does not need sigpipe suppression.
+ configure: reordered and improved headers detection. Some headers require
+ other headers to be included before, now configure supports it.
+ Added missing ifdef guard for <stdbool.h>.
+ mhd_sockets: reordered includes for better compatibility.
+ Some code readability and formatting improvements. -EG
+
+October 2021
+ Added test family test_toolarge to check correct handling of the buffers
+ when the size of data is larger than free space.
+ Fixed missing updated of read and write buffers sizes.
+ Added detection and use of supported "noreturn" keyword for function
+ declaration. It should help compiler and static analyser.
+ Added support for leak sanitizer.
+ Fixed analyser errors on W32.
+ Partially reworked memory allocation from the pool, more robust
+ implementation, always track read and write buffers.
+ Added custom memory poisoning in memory pool with address sanitizer.
+ Added missing update of the read buffer size.
+ Addition for doxy for new behaviour of MHD_del_response_header().
+ Added two tests with non-standard symbols in requests.
+ Removed double close of connection with error in headers processing.
+ Respond to the client with error if chunked request has broken chunked
+ encoding as required by HTTP RFC instead of just closing the connection.
+ Fixed request headers processing. Do not recognize bare CR as end of line.
+ Fixed processing of CRCR, bare CR, LFCR, and LFLF as end of the line for
+ request chunked encoding. Now only CRLF or bare LF are recognized as end
+ of line.
+ Added Lawrence Sebald to the AUTHORS file (iovec-based responses).
+ Check for PAGESIZE and PAGE_SIZE macros and check whether they can be used
+ for static variable initialization.
+ Include "MHD_config.h" before all other includes to set macros required to
+ be set before standard includes.
+ Chunked response: abort with error if application returns more data than
+ requested.
+ Monotonic clock: use only native clock on W32 as all other clocks are just
+ wrappers.
+ W32: fixed builds with MSVC, added projects for VS2022, added MSVC
+ universal project that use latest available toolset, use C17 if supported.
+ Chunked response: fixed calculation of number of bytes left to send.
+ microhttpd.h: doxy clarifications for sockets polling.
+ Updated HTTP statuses, methods, and headers names from the registries.
+ Further improved doxy for MHD_add_response_header().
+ A few comments improvements and clarifications.
+ Added internal connection's flag indicating discard of the request. -EG
+ Websockets update by David Gausmann. -DG
+ Fixed reported value for MHD_CONNECTION_INFO_CONNECTION_TIMEOUT.
+ Minor code readability improvements in MHD_set_connection_option().
+ Improved doxy for MHD_get_timeout().
+ Memorypool: minor code improvements. -EG
+
+September 2021
+ Improved system includes headers detection and usage. Removed unused
+ headers detection.
+ Added indirect calculation of maximum values at compile time by
+ using types size detection. These values are used only to mute
+ compiler warnings.
+ Fixed pre-compiler errors if various *_MAX macros defined with
+ non-digits symbols not readable for pre-compiler.
+ Limit number of used CPU cores in tests to 6, unless heavy tests are
+ enabled.
+ Disabled parallel tests with libcurl if heavy tests are enabled.
+ configure: removed '--enable-sanitizer' and added '--enable-sanitizers'
+ parameters. Added testing for supported sanitizers and enabling only
+ supported sanitizers.
+ Added support for run-time sanitizers settings for tests when
+ sanitizers are enabled.
+ Added support for undefined behavior sanitizer without run-time library.
+ Fixed various undefined behavior sanitizer detected errors, improved
+ portability.
+ Fixed how bitwise NOT is used with enum, fixed portability.
+ microhttpd.h: changed macros MHD_CONTENT_READER_* to use ssize_t.
+ test_postprocessor: added more check, improved error reporting, added
+ new test data.
+ postprocessor: fixed undefined behavior (memcpy(), memmove() with zero
+ size and NULL pointer).
+ Updated copyright year in W32 DLLs.
+ postprocessor: fixed empty key processing.
+ test_postprocessor: added tests with hex-encoded values.
+ postprocessor: fixed incomplete processing of the last part of hex-encoded
+ value if data was broken into certain sized pieces.
+ Used type specifiers for printf() from inttypes.h to improved compatibility
+ with various run-time libs. Fallback to standard values if type specifiers
+ are not defined.
+ Added detection of used run-time library (MSVCRT/UCRT) on W32.
+ testcurl: fixed incorrect case-insensitive match for method name. Method
+ name must be checked by using case-sensitive match.
+ microhttpd.h: clarified some doxy descriptions.
+ Prevented potential double sending of error responses.
+ Fixed application notification with MHD_REQUEST_TERMINATED_COMPLETED_OK
+ when error response has been sent (MHD_REQUEST_TERMINATED_WITH_ERROR is
+ used).
+ Avoid trying to send error response if response is already being sent.
+ Improved log error message when error response is processing. -EG
+
+August 2021
+ Silently drop "keep-alive" token from response "connection" header,
+ "keep-alive" cannot be enforced and always enabled if possible.
+ Further improved doxy for MHD_add_response_header().
+ Added detection of the "Date:" header in the response headers set by
+ app at response forming time.
+ Disallow space in response header name, allow tab in response header
+ value.
+ Added internal MHD_uint8_to_str_pad() function.
+ Used internal MHD_uint8_to_str_pad() in datestamp generation function.
+ Added detection and reporting of incorrect "Upgrade" responses. -EG
+ Fixed short busy waiting (up to one second) when connection is going
+ to be closed. -AI
+ Minor improvement for test_callback, test_get_chunked
+ Fixed chunked responses with known size.
+ Added two more tests for chunked response.
+ Fixed chunked responses with predefined data (without data callback).
+ Fixed calculation of the buffer size for the next response chunk.
+ Completely rewritten reply header build function. The old version
+ had several levels of hacks, was unmaintainable, did not follow
+ HTTP specification in details; fixed used caseless header matching
+ where case-sensitive matching must be used; removed two passes of
+ header building. New version use clear logic and can be extended
+ when needed.
+ Changed behaviour: "Connection: keep-alive" is not being sent
+ for HTTP/1.1 connection (as per HTTP RFC).
+ test_get_chunked: fixed error reporting.
+ HTTPS tests: fixed memory leaks if function failed.
+ libcurl tests: improved handling of curl multi_*.
+ Added two tests for correct choice of "Keep-Alive" or "Close".
+ Simplified Makefile for testcurl.
+ Fixed select() error handling in tests.
+ microhttpd.h: minor macro formatting
+ Changed behaviour: if response size is unknown and chunked encoding is
+ allowed, chunked encoding is used even for non-keep-alive connection as
+ required by HTTP RFC.
+ Added two more tests for chunked replies.
+ Simplified keepalive_possible(); added new value for MHD_ConnKeepAlive,
+ added third state "Upgrade".
+ Changed behaviour: used HTTP/1.1 replies for HTTP/1.0 requests as
+ required by HTTP RFC. HTTP/1.0 reply still can be enforced by response
+ flag.
+ Added more doxy for MHD_ResponseFlags, added new names with the same
+ values as old names: MHD_RF_HTTP_1_0_COMPATIBLE_STRICT and
+ MHD_RF_HTTP_1_0_SERVER.
+ Added new value MHD_RF_SEND_KEEP_ALIVE_HEADER to enforce sending of
+ "Connection: keep-alive" even for HTTP/1.1 clients when keep-alive is
+ used.
+ test_get_close_keep_alive: added more combinations of parameters to
+ check.
+ Added separate flag for chunked response in connection instead of
+ reusing the same flag as for chunked request.
+ Added new connection's flag "stop_with_error".
+ Fixed empty first line processing: the request could be not processed
+ unless something else kicks next processing the same connection again.
+ Added new connection states: MHD_CONNECTION_REQ_LINE_RECEIVING,
+ MHD_CONNECTION_FULL_REQ_RECEIVED, MHD_CONNECTION_START_REPLY to
+ simplify states logic.
+ Changed write buffer allocation logic: as connection buffer size is
+ known and fixed, use initially use full buffer for writing and reduce
+ size of part used for writing if another allocation from the same
+ buffer needs to be done. Implemented helper function to automatically
+ reduce the size of read or write part to allocate buffer for other
+ needs.
+ Added define of NDEBUG if neither _DEBUG nor NDEBUG are defined.
+ As accepted sockets inherit non-blocking flag from listening socket
+ on all platform except Linux, track this state to use less number
+ of syscalls.
+ Fixed compiler and static analyser warnings.
+ Moved HTTPS tests helper file to the HTTPS tests directory.
+ Minor Makefiles cleanup.
+ Added support for new monotonic clock ids.
+ Added new internal monotonic clock function with milliseconds accuracy.
+ Fixed support of custom connection timeout in thread-per-connection mode.
+ Added more error checking to test_timeout.
+ microhttpd.h: removed duplicated macro.
+ Refined timeouts handling. Switched from seconds resolution to milliseconds
+ resolution, added automatic detection and support of low-resolution system
+ clock to avoid busy-waiting at connection expiration. Added log message
+ for too large timeout period (> 146 million years) with trim to supported
+ values. -EG
+
Wed 04 Aug 2021 06:56:52 PM CEST
Introduce new MHD_CONNECTION_INFO_HTTP_STATUS. -CG
+July 2021
+ Added automatic response flags with detection when response
+ is being formed.
+ Added special processing for response "Connection" headers, combined
+ multiple "Connection" headers into single header.
+ Restructured MSVC project files.
+ Changed MSVC project defaults to Vista+ (WinXP is still supported).
+ Fixed copy-paste error in mhd_aligh.h, added support for MSVC.
+ Added internal function for printing hex and decimals numbers.
+ Reply chunked body handling fixes, used new internal functions
+ instead of snprintf().
+ Added automatic response flag when app sets chunked encoding header.
+ New internal function for chunked reply footer forming. Unification with
+ reply header forming function just over-complicated things and made
+ function hardly maintainable.
+ Added new function MHD_get_reason_phrase_len_for(), related tests and
+ updated scripts for response phrases.
+ Added more tests for chunked replies.
+ Added function to reset connection state after finishing processing of
+ request-reply to prepare for the next request.
+ Added even more tests for chunked replies.
+ Added internal function for printing uint64_t decimal numbers. -EG
+
+June 2021
+ Tests: implemented checking of response footer.
+ Fixed loss of incoming data if more than half of buffer is
+ used for the next request data.
+ Fixed completely broken calculation of request header size.
+ Chunked response: do not ask app callback for more data then
+ it is possible to process (more than 16 MBytes).
+ Check and report if app used wrong response code (>999 or <100)
+ Refuse to add second "Transfer-Encoding" header.
+ HTTPS tests: check whether all libcurl function succeeded.
+ HTTPS tests: implemented new detection of TLS backend.
+ HTTPS tests: fixed tests with new TLS defaults (SSL forbidden).
+ Implemented detection of basic HTTP methods, fixed wrong
+ caseless matching for HTTP method names.
+ MHD_create_response_*() functions: improved doxy.
+ MHD_add_response_header: added detailed comment about automatic
+ headers.
+ Do not allow responses with 1xx codes for HTTP/1.0 requests.
+ Fixed used order of headers: now user response headers are used in
+ the same order as was added by application.
+ Added new internal function MHD_get_response_element_n_().
+ Added detection of more compiler built-ins for bits rotations.
+ Minor optimisation of caseless strings matching.
+ Added MHD_str_remove_token_caseless_() function and tests.
+ Added MHD_str_remove_tokens_caseless_() function and tests. -EG
+
+May 2021
+ Doxy description clarifications for MHD_get_timeout() and related
+ functions.
+ Added MHD_create_response_from_buffer_with_free_callback_cls().
+ Added SHA-1 calculation (required for WebSockets).
+ Added new internal header mhd_aligh.h for checking alignment of
+ variables.
+ Fixed SHA-256 and MD5 calculation with unaligned data.
+ Added tests for hashes with unaligned data.
+ Used compiler built-ins for bits rotations.
+ Added detection of HTTP version at early stage.
+ Added early response of unsupported HTTP version.
+ Fixed wrong caseless matches for HTTP version strings.
+ Added calculation of error responses at compile time (avoided
+ repeated strlen() for known data). -EG
+
+April 2021
+ New test for reply chunked encoding. -EG
+
Mon 26 Apr 2021 02:09:46 PM CEST
Importing experimental Websocket support by David Gausmann. -CG
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.