Veröffentlichung der GNU-Bibliothek libmicrohttpd 0.9.77

Das GNU-Projekt hat die Bibliothek libmicrohttpd 0.9.77 veröffentlicht, die eine einfache API zur Integration von HTTP-Serverfunktionen in Anwendungen bietet. Unterstützte Plattformen sind: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 und z/OS. Die Bibliothek wird unter der LGPL 2.1+ Lizenz verteilt. Im kompilierten Zustand nimmt die Bibliothek etwa 32 KB ein.

Die Bibliothek unterstützt das HTTP 1.1-Protokoll, TLS, inkrementelle Verarbeitung von POST-Anfragen, Basic- und Digest-Authentifizierung, IPv6, SHOUTcast, verschiedene Methoden zur Multiplexierung von Verbindungen (select, poll, epoll) und Multithreading-Modelle (z. B. kann ein Thread-Pool oder ein Thread pro Verbindung verwendet werden). Um den Overhead zu reduzieren, der durch den Kontextwechsel zwischen Kernel und Benutzerraum entsteht, wurde die Anzahl der Systemaufrufe während des Betriebs auf ein Minimum reduziert.

Die auffälligsten Änderungen:

  • Im API wurde eine neue Funktion MHD_get_version_bin() hinzugefügt, um Informationen über die Version der Bibliothek im kompakten Format (z. B. 0x00097701) zu erhalten.
  • Den in der RFC empfohlenen Formaten wurden die Identifikatoren der Algorithmen für die Digest-Authentifizierung („MD5“ / „SHA-256“ anstelle von „md5“ / „sha-256“) hinzugefügt.
  • Der Code zur Dekodierung von Blöcken im Base64-Format wurde neu geschrieben, die Eingabewertprüfung im Base64-Format wurde verstärkt.
  • Die Konfiguration für Cross-Compilation wurde verbessert, die Kompatibilität mit POSIX und neuen Compiler-Versionen erhöht.
  • Interne Tests zur Überprüfung der Base64-Dekodierung, der Basis-Authentifizierung und von eingerollten langen HTTP-Headern wurden hinzugefügt.
  • In den Tests wurde die aktualisierte API der Bibliothek libcurl verwendet, um Warnungen über die Verwendung veralteter Aufrufe zu unterdrücken.
  • Die Möglichkeit, VC-Compiler (Visual C) beim Kompilieren für ARM- und ARM64-Systeme zu verwenden, wurde hinzugefügt.
  • Alle negativen Werte, die von einem Callback-Aufruf zurückgegeben werden, werden jetzt als Fehler betrachtet (früher konnten negative Werte, mit Ausnahme vordefinierter Fehlercodes, zu undefiniertem Verhalten führen).
  • Die Verarbeitung des Präprozessor-Makros „DEBUG“ wurde hinzugefügt (der Handler ist identisch mit dem Makro „_DEBUG“).
  • Es wurden kumulierte Fehler behoben.

Quelle: opennet.ru

60GB SSD 8Gb DDR4