The GNU Project has released version 0.9.74 of the libmicrohttpd library, which provides a simple API for embedding HTTP server functionality into applications. The library supports the HTTP 1.1 protocol, TLS, incremental handling of POST requests, basic and digest authentication, IPv6, SHOUTcast, and various connection multiplexing methods (select, poll, pthread, thread pool). Supported platforms include GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian, and z/OS. The library is distributed under the LGPL 2.1+ license.
In the new version:
- An experimental implementation of the WebSockets protocol has been added, which is not well-tested and is disabled by default.
- Improved compliance with the specifications of HTTP 1.0/1.1 protocol implementations.
- Revised code for decoding chunked requests.
- The code for generating HTTP headers in responses has been completely rewritten.
- Code has been added for automatically returning errors related to malformed chunked requests, excessive data size, and incorrect Content-Length header settings.
- The accuracy of timeout settings has been increased from seconds to milliseconds.
- Internal optimizations have been made, such as improved memory management, enhanced hashing efficiency, and elimination of redundant parsing of protocol versions and HTTP methods.
- Stricter validation of HTTP header values has been implemented; tab characters are allowed in response header values, but spaces are prohibited in custom header values.
- An assembly option ‘—enable-sanitizers[=address,undefined,leak,user-poison]’ has been added for selectively enabling code issue detection modes.
- A project file for building in MSVC has been added.
Source: opennet.ru
