Проект GNU публикува версия на библиотеката libmicrohttpd 0.9.74, която представлява прост API за вграждане на функционалността на HTTP сървър в приложения. Библиотеката поддържа протокол HTTP 1.1, TLS, инкрементална обработка на POST заявки, базова и digest аутентификация, IPv6, SHOUTcast и различни методи за мултиплексиране на връзки (select, poll, pthread, thread pool). Поддържаните платформи включват: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian и z/OS. Библиотеката се разпространява под лиценз LGPL 2.1+.
В новата версия:
- Добавена е експериментална реализация на протокола WebSockets, която все още не е достатъчно добре тествана и е деактивирана по подразбиране.
- Подобрено е съответствието със спецификациите на реализациите на протоколите HTTP 1.0/1.1.
- Кодът за декодиране на chunked заявки е преработен.
- Кодът за формиране на HTTP заглавки при отговор е напълно презаписан.
- Добавен е код за автоматично връщане на грешки, свързани с некоректни chunked заявки, твърде голям размер на данните и неправилно зададен заглавен Content-Length.
- Точността на зададените таймаути е повишена от секунди до милисекунди.
- Извършени са вътрешни оптимизации, например подобрено управление на паметта, увеличена ефективност на хеширането и елиминирано повторно разбиране на версията на протокола и метода на HTTP.
- Осигурена е по-строга проверка на коректността на стойностите на HTTP заглавките, разрешено е използването на табулации в стойностите на заглавките в отговор, но е забранено използването на интервали в стойностите на потребителските заглавки.
- Добавена е опция за сборка ‘—enable-sanitizers[=address,undefined,leak,user-poison]’ за селективно включване на режимите за откриване на проблеми в кода.
- Добавен е файл на проекта за компилиране в MSVC.
Източник: opennet.ru
