Wydanie biblioteki GNU libmicrohttpd 0.9.77

Projekt GNU opublikował wydanie biblioteki libmicrohttpd 0.9.77, która oferuje prosty interfejs API do wbudowywania funkcjonalności serwera HTTP w aplikacje. Obsługiwane platformy to: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 i z/OS. Biblioteka jest udostępniana na licencji LGPL 2.1+. W skompilowanej formie biblioteka zajmuje około 32 KB.

Biblioteka wspiera protokół HTTP 1.1, TLS, inkrementalne przetwarzanie żądań POST, uwierzytelnianie basic i digest, IPv6, SHOUTcast, różne metody multiplexowania połączeń (select, poll, epoll) oraz modele wielowątkowości (na przykład można użyć puli wątków lub jednego wątku na połączenie). Aby zredukować narzuty związane z przełączaniem kontekstu między jądrem a przestrzenią użytkownika, liczba wywołań systemowych podczas działania jest zminimalizowana.

Najbardziej zauważalne zmiany:

  • W API dodano nową funkcję MHD_get_version_bin() do uzyskiwania informacji o wersji biblioteki w skompresowanym formacie (na przykład 0x00097701).
  • Do formatu zalecanego w RFC dodano identyfikatory algorytmów wykorzystywanych do uwierzytelniania digest („MD5” / „SHA-256” zamiast „md5” / „sha-256”).
  • Przepisano kod dekodowania bloków w formacie Base64, wzmocniono sprawdzanie poprawności danych wejściowych w formacie Base64.
  • Ulepszono konfigurację krzyżowej kompilacji, zwiększono zgodność z POSIX i nowymi wersjami kompilatorów.
  • Dodano wewnętrzne testy do sprawdzania dekodowania Base64, Basic Auth i zwiniętych długich nagłówków HTTP.
  • W testach wykorzystano zaktualizowane API biblioteki libcurl, aby ukryć ostrzeżenia o użyciu przestarzałych wywołań.
  • Dodano możliwość używania kompilatorów VC (Visual C) przy kompilacji dla systemów ARM i ARM64.
  • Wszystkie wartości ujemne zwracane przez wywołania callback są teraz interpretowane jako błędy (wcześniej wartości ujemne, z wyjątkiem zdefiniowanych kodów błędów, mogły prowadzić do nieokreślonego zachowania).
  • Dodano obsługę makra preprocessora „DEBUG” (obsługuje identycznie jak makro „_DEBUG”).
  • Naprawiono narosłe błędy.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster