The GNU Project has released libmicrohttpd 0.9.74, a simple API for embedding HTTP server functionality into applications. The library supports HTTP 1.1, TLS, incremental POST request processing, 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 yet well tested and is disabled by default.
- Improved compliance with HTTP 1.0/1.1 protocol implementation specifications.
- Redesigned code for decoding chunked requests.
- Completely rewritten code for generating HTTP headers when responding.
- Added code to automatically return errors related to incorrect chunked requests, too large data size, and incorrect setting of the Content-Length header.
- The accuracy of setting timeouts has been increased from seconds to milliseconds.
- Internal optimizations have been made, such as improved memory management, improved hashing efficiency, and avoided repetitive parsing of the HTTP protocol version and method.
- More stringent validation of HTTP header values is provided, the use of the tab character in response header values is allowed, but the use of spaces in custom header values is prohibited.
- Added build option '—enable-sanitizers[=address,undefined,leak,user-poison]' to selectively enable problem detection modes in code.
- Added a project file for building in MSVC.
Source: opennet.ru
