GNU libmicrohttpd 0.9.77
This is mostly a bugfix release.
This version created by taking patches from the current development branch and back-porting them on top of version 0.9.76.
The most notable changes are: some improvements for Digest and Basic authorizations, fixed efficiency for TLS upgraded connections, fixed processing of folded headers in requests, fixed functionality with blocking sockets, improved and fixed internal test-suite.
The more detailed list of the important changes:
API changes:
- Added new function
MHD_get_version_bin()
.
Improvements and enhancements:
- Digest Auth: changed algorithm identifiers in server generated headers from
md5
/sha-256
toMD5
/SHA-256
to better match RFC (while clients should use caseless matching). - Improved Base64 decoding by new implementation with robust input data validation checks.
- Improved configure for cross-compiling, for better compatibility with POSIX and for better compatibility with the latest compiler versions.
- New internal tests: for Base64 decoding, Basic Auth and folded headers.
- Supported new libcurl API in tests to mute deprecation warnings.
- Supported ARM and ARM64 for VC compilers.
Functionality changes:
- any negative number returned by response data generation callback function is treated as an error. Previously negative values except predefined error codes could produce undefined behaviour.
- Added handling of
DEBUG
preprocessor macro as an alias of_DEBUG
.
Fixes:
- Fixed functionality with blocking sockets.
- Fixed very inefficient data pumping for upgraded TLS connections.
- Fixed processing of folded headers in the requests.
- Fixed data races when closing upgraded connection.
- Removed duplication of "Connection: upgrade" header.
- Digest auth: fixed thread sync to avoid "stale hash" results.
- Fixed harmless unwanted extra data processing resulting in triggering of the assert.
- Fixed tests for LTO.
- Removed removed non-portable functions in examples.
- Fixed delayed call of connection notification callback in thread-per-connection mode.
- Fixed Address Sanitizer unpoison of memory when memory pool is destroyed. This fixed periodic ASAN error when used for a long time with the sanitizer.
- Fixed compiler warnings in library code, examples, tests and configure checks.
- New TLS certificates for test-suite: all with SAN fields and SHA-256 hash.
- Tests: fixed tests on Darwin 22.x (Ventura).
- Tests: redesigned one tests group to avoid stress-testing of the OS.
Full Changelog: v0.9.76...v0.9.77