Gnu Libmicrohttpd 0.9.77 Release

GNU Project has released the latest version of the library, libmicrohttpd 0.9.77, which provides an easy-to-embed HTTP server functionality in an application. This library supports various platforms including GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, MacOS, Win32 and Z/OS. The library occupies about 32 kb and is distributed under the LGPL 2.1+ license.

Libmicrohttpd 0.9.77 supports HTTP 1.1, TLS protocol, the HEARTAL TRAINING POST Causes, Basic and Digest Authentication, IPV6, Shoutcast, various methods of multiplexing compounds (Select, Poll, Epoll) and Multiplying Models (for example, you can use flows pools or flows pools Stream for connection). To minimize the overhead costs arising from the context switching between the core and the user space, the library reduces the number of system calls during work.

The updated library features some major changes, including the proposal of a new function MHD_GET_VERSION_BIN() to obtain information about the library version in a packaged format. The form recommended in RFC shows identifiers of algorithms used for Digest authentication (“MD5” / “SHA-256” instead of “MD5” / “SHA-256”). The code of blocks in the format of BASE64 and the verification of the correctness of the input data in BASE64 format have been co-rewritten and reinforced.

Furthermore, this release of the library improved setting up cross-compilation, increased compatibility with Posix and new versions of compilers. The internal tests for checking decoding BASE64, BASIC AUTH and long http-volts were added. The library also updated API Libcurl APS and involved tests to hide the use of outdated calls.

The latest version of the library also added the possibility of using VC (Visual C) compilers for assembly for ARM and ARM64 systems. Any negative values ​​returned to Callback-call are now interpreted as errors. Previously, if negative values, with the exception of predetermined error codes, were used, the library could lead to indefinite behavior. The library now also processes the preprocessor “Debug” (the processor is identical to the macros “_debug”). Lastly, accumulated errors have been fixed.

The library is readily available for download from the official website, while the complete list of changes can be found on the news page.

/Reports, release notes, official announcements.