„GNU Project“ išleido „libmicrohttpd 0.9.77“ – paprastą API sąsają, skirtą HTTP serverio funkcionalumo įterpimui į programas. Palaikomos platformos: GNU/Linux, „FreeBSD“, „OpenBSD“, „NetBSD“, „Solaris“, Android, macOS, „Win32“ ir „z/OS“. Biblioteka platinama pagal LGPL 2.1+ licenciją. Sukompiliuotos bibliotekos dydis yra maždaug 32 KB.
Biblioteka palaiko HTTP 1.1 protokolą, TLS, laipsnišką POST užklausų apdorojimą, pagrindinį ir santraukos autentifikavimą, IPv6, SHOUTcast, įvairius ryšio tankinimo būdus (select, poll, epoll) ir kelių gijų modelius (pavyzdžiui, galite naudoti gijų telkinį arba sriegis per jungtį). Siekiant sumažinti pridėtines išlaidas, patiriamas perjungiant kontekstą tarp branduolio ir vartotojo erdvės, sistemos iškvietimų skaičius veikimo metu sumažinamas iki minimumo.
Labiausiai pastebimi pokyčiai:
- API siūlo naują funkciją MHD_get_version_bin(), kad gautų informacijos apie bibliotekos versiją supakuotu formatu (pavyzdžiui, 0x00097701).
- RFC rekomenduojamoje formoje yra algoritmų, naudojamų santraukos autentifikavimui, identifikatoriai ("MD5" / "SHA-256" vietoj "md5" / "sha-256").
- Perrašytas Base64 formato blokų dekodavimo kodas, sustiprintas įvesties duomenų teisingumo patikrinimas Base64 formatu.
- Patobulinti kryžminio kompiliavimo nustatymai, didesnis suderinamumas su POSIX ir naujomis kompiliatorių versijomis.
- Pridėta vidinių testų, skirtų patikrinti „Base64“ dekodavimą, „Basic Auth“, ir sutrauktos ilgos HTTP antraštės.
- Bandymai naudoja atnaujintą libcurl API, kad paslėptų įspėjimus apie nebenaudojamų skambučių naudojimą.
- Pridėta galimybė naudoti VC (Visual C) kompiliatorius kuriant ARM ir ARM64 sistemas.
- Visos neigiamos reikšmės, grąžintos atgalinio skambučio metu, dabar laikomos klaidomis (anksčiau neigiamos reikšmės, išskyrus iš anksto nustatytus klaidų kodus, gali lemti neapibrėžtą elgesį).
- Pridėtas išankstinio procesoriaus makrokomandos „DEBUG“ apdorojimas (tvarkyklė yra identiška makrokomandai „_DEBUG“).
- Susikaupusios klaidos ištaisytos.
Šaltinis: opennet.ru
