Выпуск библиотеки GNU libmicrohttpd 0.9.77
Проект GNU опубликовал выпуск библиотеки libmicrohttpd 0.9.77, представляющей простой API для встраивания функциональности HTTP-сервера в приложения. Среди поддерживаемых платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 и z/OS. Библиотека распространяется под лицензией LGPL 2.1+. В собранном виде библиотека занимает около 32 КБ.
Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементальную обработку POST-запросов, basic- и digest-аутентификацию, IPv6, SHOUTcast, различные методы мультиплексирования соединений (select, poll, epoll) и модели многопоточности (например, можно использовать пул потоков или поток на соединение). Для снижения накладных расходов, возникающих при переключении контекста между ядром и пространством пользователя, число системных вызовов в процессе работы сведено к минимуму.
Наиболее заметные изменения:
В API предложена новая функция MHD_get_version_bin () для получения информации о версии библиотеки в упакованном формате (например, 0×00097701).
- К форме, рекомендуемой в RFC, приведены идентификаторы алгоритмов, используемых для digest-аутентификации («MD5» / «SHA-256» вместо «md5» / «sha-256»).
Переписан код декодирования блоков в формате Base64, усилена проверка корректности входных данных в формате Base64.
- Улучшена настройка кросс-компиляции, повышена совместимость с POSIX и новыми версиями компиляторов.
- Добавлены внутренние тесты для проверки декодирования Base64, Basic Auth и свёрнутых длинных HTTP-заголовов.
- В тестах задействован обновлённый API библиотеки libcurl для скрытия предупреждений об использовании устаревших вызовов.
- Добавлена возможность использования компиляторов VC (Visual C) при сборке для систем ARM и ARM64.
- Любые отрицательные значения, возвращаемые callback-вызовом, теперь трактуются как ошибки (ранее отрицательные значения, за исключением предопределённых кодов ошибок, могли привести к неопределённому поведению).
Добавлена обработка макроса препроцессора «DEBUG» (обработчик идентичен макросу »_DEBUG»).
- Исправлены накопившиеся ошибки.
Источник: http://www.opennet.ru/opennews/art.shtml? num=59211
© OpenNet