A GNU projekt kiadta a libmicrohttpd 0.9.77 könyvtárat, amely egy egyszerű API-t biztosít HTTP-szerver funkciók beépítéséhez alkalmazásokba. A támogatott platformok közé tartozik a GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 és z/OS. A könyvtár LGPL 2.1+ licenc alatt terjesztendő. Megépített állapotában a könyvtár körülbelül 32 KB-ot foglal el.
A könyvtár támogatja a HTTP 1.1 protokollt, TLS-t, a POST-kérések inkrementális feldolgozását, alap- és digest hitelesítést, IPv6-ot, SHOUTcast-ot, különböző kapcsolat multiplexelési módszereket (select, poll, epoll) és szálkezelési modelleket (például használható szálat pool vagy kapcsolat alapú szál). A felhasználói tér és a kernel közötti kontextusváltás költségeinek csökkentése érdekében a futás közben a rendszerhívások száma minimálisra lett csökkentve.
A legszembetűnőbb változások:
- Az API új MHD_get_version_bin() funkciót kínál a könyvtár verziójának csomagolt formátumban történő lekérésére (például 0x00097701).
- A RFC által ajánlott formához képest a digest hitelesítéshez használt algoritmusok azonosítói vannak megadva ("MD5" / "SHA-256" a "md5" / "sha-256" helyett).
- Az Base64 formátumú blokkok dekódoló kódja újraírásra került, és a bemeneti adatok helyességének ellenőrzése megerősítésre került Base64 formátumban.
- Javították a keresztfordítás beállítását, növelték a POSIX kompatibilitást és az új fordítók támogatását.
- Belső tesztek kerültek hozzáadásra a Base64, Basic Auth és a lerövidített hosszú HTTP-fejlécek dekódolásának ellenőrzésére.
- A tesztekben a libcurl könyvtár frissített API-ja került felhasználásra a régi hívások használatáról szóló figyelmeztetések elrejtésére.
- Hozzáadódott a VC (Visual C) fordítók használatának lehetősége ARM és ARM64 rendszerekhez történő építéskor.
- Bármilyen negatív érték, amely callback hívás során vissza lett adva, most hibának számít (korábban a negatív értékek, a meghatározott hibakódokon kívül, nem meghatározott viselkedést eredményezhettek).
- A "DEBUG" előfeldolgozó makró kezelésére került sor (a kezelő az "_DEBUG" makróval azonos).
- A felhalmozódott hibák kijavítva.
Forrás: opennet.ru
