La GNU-Projekto publikigis libmicrohttpd 0.9.77, simplan API-on por enmeti HTTP-servilan funkcion en aplikaĵojn. Subtenataj platformoj inkluzivas: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32, kaj z/OS. La biblioteko estas distribuita sub la permesilo LGPL 2.1+. Kiam kompilita, la biblioteko okupas proksimume 32 KB.
La biblioteko subtenas HTTP 1.1-protokolon, TLS, pliigan prilaboradon de POST-petoj, bazan kaj digest-aŭtentikigon, IPv6, SHOUTcast, diversajn konektajn multipleksajn metodojn (elekto, balotado, epoll) kaj multfadenajn modelojn (ekzemple, vi povas uzi fadenan grupon aŭ fadeno per konekto). Por redukti la superkoston kaŭzitan kiam kunteksto ŝanĝas inter la kerno kaj uzantspaco, la nombro da sistemvokoj dum operacio estas konservita al minimumo.
La plej rimarkindaj ŝanĝoj:
- La API ofertas novan funkcion MHD_get_version_bin() por akiri informojn pri la bibliotekversio en pakita formato (ekzemple, 0x00097701).
- La formo rekomendita en la RFC enhavas la identigilojn de la algoritmoj uzataj por digesta aŭtentigo ("MD5" / "SHA-256" anstataŭ "md5" / "sha-256").
- La kodo por malkodi blokojn en Base64-formato estis reverkita, kaj la konfirmo de la korekteco de enigo-datumoj en Base64-formato estis plifortigita.
- Plibonigitaj kruc-kompilaj agordoj, pliigita kongruo kun POSIX kaj novaj versioj de kompililoj.
- Aldonitaj internaj testoj por kontroli Base64-malkodigon, Basic Auth kaj kolapsitajn longajn HTTP-titolojn.
- La testoj uzas la ĝisdatigitan libcurl API por kaŝi avertojn pri uzado de malrekomenditaj vokoj.
- Aldonita la kapablo uzi VC (Vida C) kompililoj dum konstruado por ARM kaj ARM64 sistemoj.
- Ĉiuj negativaj valoroj resenditaj per revokvoko nun estas traktataj kiel eraroj (antaŭe negativaj valoroj, krom antaŭdifinitaj erarkodoj, povus konduki al nedifinita konduto).
- Aldonita pretigo de la antaŭprocesora makroo "DEBUG" (la prizorganto estas identa al la makroo "_DEBUG").
- Amasigitaj eraroj estis korektitaj.
fonto: opennet.ru
