GNU projekt avaldas libmicrohttpd 0.9.77 väljaande, mis esindab lihtsat API-d HTTP-serveri funktsionaalsuse sisestamiseks rakendustesse. Toetatavate platvormide hulka kuuluvad: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 ja z/OS. Raamatukogu levitatakse LGPL 2.1+ litsentsi alusel. Kokku kompileeritud kujul võtab raamatukogu umbes 32 KB.
Raamatukogu toetab HTTP 1.1 protokolli, TLS-i, POST-päringute inkrementaalset töötlemist, basic- ja digest- autentimist, IPv6, SHOUTcast, erinevaid ühenduste multipaksimise meetodeid (select, poll, epoll) ja mitme lõime mudelit (näiteks võib kasutada lõimede kogumit või löime igas ühenduses). Konteksti vahetuse kulude vähendamiseks on süsteemikutsed tööprotsessi käigus viidud miinimumini.
Olulisemad muudatused:
- API-s pakutakse uut funktsiooni MHD_get_version_bin(), et saada teavet raamatukogu versiooni kohta pakitud formaadis (nt 0x00097701).
- RFC-s soovitatud vormis on toodud algoritmide id-d, mida kasutatakse digest-autentimises ("MD5" / "SHA-256" asemel "md5" / "sha-256").
- Base64-formaadis plokkide dekodeerimise kood on ümber kirjutatud ja sissetulevate andmete kehtivuse kontroll on tugevdatud.
- Ristkompileerimise seadistamine on paranenud, suurendades ühilduvust POSIX-i ja uute kompilaatoriversioonidega.
- Lisatud sisetestsid Base64 dekodeerimise, Basic Authi ja kokkuvolditud pikkade HTTP-pealkirjade kontrollimiseks.
- Testides on kasutatud uuendatud libcurl teegi API-d, et varjata hoiatusi vananenud kõnede kasutamise kohta.
- Juurutatud on VC (Visual C) kompilaatorite kasutamise võimalus ARM- ja ARM64-süsteemide ehitamisel.
- Kõik negatiivsed väärtused, mis tagastatakse tagasisidekõne kaudu, tõlgendatakse nüüd vigadena (varasemalt võis negatiivsed väärtused, välja arvatud ettenähtud veakoodid, põhjustada määramatut käitumist).
- Lisatud on eelmise töötlemise makro "DEBUG" (töötlus on sama mis makrol "_DEBUG").
- Korrigeeritud on kogunenud vead.
Allikas: opennet.ru
