Projekt GNU zveřejnil vydání knihovny libmicrohttpd 0.9.77, která představuje jednoduché API pro integraci funkčnosti HTTP serveru do aplikací. Mezi podporované platformy patří GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 a z/OS. Knihovna je distribuována pod licencí LGPL 2.1+. Ve zkompilované podobě knihovna zabírá přibližně 32 kB.
Knihovna podporuje protokol HTTP 1.1, TLS, inkrementální zpracování POST požadavků, basic a digest autentizaci, IPv6, SHOUTcast, různé metody multiplexování spojení (select, poll, epoll) a modely vícethr threading (například lze používat pool vláken nebo vlákno na spojení). Pro snížení režijních nákladů spojených se zpracováním kontextu mezi jádrem a uživatelským prostorem je počet systémových volání během provozu minimalizován.
Nejvýznamnější změny:
- API nyní nabízí novou funkci MHD_get_version_bin() pro získání informace o verzi knihovny v zabaleném formátu (například 0x00097701).
- K formátu doporučenému v RFC byla přidána identifikátory algoritmů používaných pro digest autentizaci („MD5“ / „SHA-256“ místo „md5“ / „sha-256“).
- Byl přepsán kód pro dekódování bloků ve formátu Base64, byla posílena kontrola validity vstupních dat ve formátu Base64.
- Byla vylepšena konfigurace kros-kompilace a zvýšena kompatibilita s POSIX a novými verzemi kompilátorů.
- Byly přidány interní testy pro ověření dekódování Base64, Basic Auth a zkrácených dlouhých HTTP hlaviček.
- V testech byl použit aktualizovaný API knihovny libcurl pro skrytí varování o používání zastaralých volání.
- Byla přidána možnost používání kompilátorů VC (Visual C) při sestavování pro systémy ARM a ARM64.
- Jakákoli záporná hodnota vrácená callback voláním se nyní vykládá jako chyba (dříve mohly záporné hodnoty, kromě předdefinovaných kódů chyb, vést k nedefinovanému chování).
- Byla přidána podpora makra preprocesoru „DEBUG“ (handler je stejný jako makro „_DEBUG“).
- Opraveny nahromaděné chyby.
Zdroj: opennet.ru
