The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск библиотеки GNU libmicrohttpd 0.9.72

31.12.2020 11:43

Проект GNU опубликовал выпуск библиотеки libmicrohttpd 0.9.72, представляющей простой API для встраивания функциональности HTTP-сервера в приложения. Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементальную обработку POST-запросов, basic- и digest-аутентификацию, IPv6, SHOUTcast и различные методы мультиплексирования соединений (select, poll, pthread, thread pool). Среди поддерживаемых платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian и z/OS. Библиотека распространяется на условиях лицензии GNU LGPL 2.1+.

В новой версии, благодаря полной переработке кода буферизации, значительно улучшена совместимость с различными операционными системами, включая FreeBSD, Windows, OpenBSD, NetBSD, macOS и Solaris. Проведена работа по повышению производительности, сокращению системных вызовов и улучшению синхронизации между потоками. Внесённые оптимизации наиболее заметны при обработке остающихся открытыми соединений HTTP и HTTPS. Добавлена новая функция MHD_create_response_from_pipe() для отдачи содержимого запроса через неименованный канал, а не файл.

  1. Главная ссылка к новости (https://www.mail-archive.com/i...)
  2. OpenNews: Выпуск P2P-платформы GNUnet 0.13. Продвижение GNS в качестве интернет-стандарта
  3. OpenNews: Компания Mozilla распределила 539 тысяч долларов на гранты открытым проектам
  4. OpenNews: Подведены итоги аудита кода библиотеки GNU libmicrohttpd
  5. OpenNews: Представлен uselessd, минималистичный вариант systemd
  6. OpenNews: Библиотека на Си для встраивания HTTP сервера в приложения
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54338-libmicrohttpd
Ключевые слова: libmicrohttpd
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (49) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, MasterSlave (?), 11:54, 31/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    С Новым годом всех! Пошлём 2020 куда подальше!
     
     
  • 2.21, КО (?), 14:56, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Оффтоп, скрыть, в бан, и мой комментарий тоже.
     
  • 2.27, проснись и пой (?), 17:56, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Большинство не в курсе, что елка это пирамида, а звезда - всевидящее око.
    Вот такой уютный придуманный масонами для зобмированной толпы праздничек.

    Для особо крепкоспящих - начало года это 1 марта.
    Естесвенный природный цикл начала года.

    На сегодня хватит, надо беречь психическое здоровье лунатиков.

     
     
  • 3.28, Аноним (28), 18:07, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Начало года это весенне равноденствие и так было еще до всяких календарей. 1 марта отмечают это юлианский календарь, а значит римляне.
     
     
  • 4.30, проснись и пой (?), 18:15, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Насколько я помню у славян было 1 марта.
    Как бы логично счет начинать с первого дня весны.

    Мой основной посыл был не в этом, но как обычно, человек хватается за несущественные мелочи, а основная суть сообщения игнорируется чувтсвом страха.

     
     
  • 5.32, Аноним (32), 20:39, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > у славян было 1 марта.

    У славян был лунный календарь, там месяцы весьма условны и год от года "плавают"... Первое число месяца - это всегда одна и та же фаза луны (например, новолуние или полнолуние). Отчасти поэтому и месяцы "посъехали" у разных групп славян (скорее всего и климатические пояса в этом тоже свою роль сыграли).

     
  • 5.33, Аноним (33), 20:51, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У славян не было 1 марта это концептуальное непонимания предмета. Само существование 1 марта наносное, пришлое, чуждое. Славянский новый год это Масленица. Все остальные в том числе христианские праздники к славянам не имеют никакого отношение они и у других христианских народ точно такие же.

    И это уже не говоря что в Христианстве праздник это Рождество, а «Новый год» не праздник, а просто календарный «феномен».

     
     
  • 6.35, проснись и пой (?), 01:16, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Раньше как бы и месяцев было не 12, если ты конечно понимаешь предмет концептуально.
    Понятно, что границы времен года вещь весьма условная.
    Думаю, перепечатывание википедии сюда, тоже не показатель концептуального понимания.
    Тут нечего обсуждать, еще в предыдущем посте я об этом написал.
     
  • 6.50, АА (?), 12:00, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У славян не было 1 марта это концептуальное непонимания предмета. Само существование
    > 1 марта наносное, пришлое, чуждое. Славянский новый год это Масленица. Все
    > остальные в том числе христианские праздники к славянам не имеют никакого
    > отношение они и у других христианских народ точно такие же.
    > И это уже не говоря что в Христианстве праздник это Рождество, а
    > <<Новый год>> не праздник, а просто календарный <<феномен>>.

    Кто такие славяне... Вопрос этот когда-то заинтересовал и меня...
    В целом предположительный ответ примерно такой. Славянами Римская Империя именовала определённые народы воспринявшие христианство проповедуемое, насаждаемое и руководимое из этой самой империи вместе со всеми вытекающими "мартами".
    Форма "славяне" при этом относится как ни странно к "самоименованию" этих народов (и значит к народностям с известной языковой общностью). Первоначально вероятно так именовались (и они сами назывались так) отдельные группы среди этих народов, воспринявшие "римское слово" или "благое слово" или "слово божие", христианство. Сейчас "Евангелие" в большей степени переводится как "благовест", "благая весть", но можно и "слово" и даже "славное слово". Позднее, когда это христианство фактически становилось у таких народностей общепринятым, уже всё "племя" считалось славянским. "Славянство" было "интернациональным движением", выходило за пределы отдельного племени. Римские авторы закрепили в источниках "славян" как самоназвание.

    Одобрения этой версии "официальными историками" у меня надо сказать нет (и я его не искал). Другой и удовлетворительной версии у "официальных историков" однако я не нашёл.

    Новый Год всё же праздник :-)

     

  • 1.2, Аноним (2), 12:21, 31/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    2021 не будет лучше.
     
     
  • 2.3, Аноним (3), 12:26, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ещё лудче!
     
     
  • 3.4, A.Stahl (ok), 12:27, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Исчо лудшее!
     
     
  • 4.7, Аноним (7), 13:34, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Более лудший!
     
     
  • 5.22, Аноним (22), 15:06, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    3-им ставлю два. лучше.

    марьванна недовольна.

     
  • 2.16, Аноним (16), 14:09, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    2020 год не считается. Его принято исключить из истории, просто это был очень длинный 2019 год.
     
     
  • 3.37, Соня Мармеладова (?), 02:50, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Поступим как с leap second
     

  • 1.5, Аноним (5), 12:35, 31/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    И что в сишной либе ни од6ой уязвимости?
     
     
  • 2.8, Аноним (8), 13:36, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да.
     
  • 2.10, Аноним (10), 13:45, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Насколько я помню историю, это плюсы всегда были стабильно уязвимыми и текли. В си гораздо сложнее допустить неочевидные ошибки и утечку ресурсов, всё зависит от программиста и его хаков (не проблема языка, в любом языке можно накосячить). Вот примерно все жава приложения у меня текут, многие дотнет приложения текут, плюсовые (та же плазма) текут. Я не помню ни одной сишной программы, чтобы она текла. Наверное потому, что там утечка сразу очевидна и исправляется? Или просто сам язык проще и меньше возможностей для ошибок.
     
     
  • 3.15, Аноним (10), 14:02, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ах да, кроме тех, которые сам написал пока впервые листал k&r (старое издание). Вот они текли, но быстро стало понятно к чему стоит относиться внимательнее и где утечек допускать нельзя. Хотя писать конструкции типа if (!strcmp(tag, "INDEX")) strncpy((cdgen = malloc(16)), tval, 15); я не перестал, но теперь внимательнее отношусь к жалобам того же valgrind и если это asciiz зануляю последний байт и не рассчитываю на компилятор и ядро (либо уже calloc вместо malloc). Хотя в той же ICU (опять плюсы да что ж ты будешь делать!) утечка памяти происходит внутри и исправить её так и не получилось.
     
     
  • 4.23, Аноним (10), 15:27, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ииии не только куча, ещё в си можно случайно повредить стек, а малое повреждение стека ни одним анализатором не вылавливается. Можно посоветовать только не повреждать стек. И, если повезёт, компилятор даже на что-нибудь пожалуется. Эффективным способом диагностирования ошибок работы со стеком может быть сборка различными тулчейнами и с разными libc, статические (не только динамические билды) для тестирования, использование разных уровней оптимизации. Особенно это весело, когда твоё приложение имеет несколько потоков и некоторые общие данные между ними. Ну тут уже с опытом всё приходит наверное, в плюсах же у тебя будет минимум 1000 утечек на 1 kloc и в однопоточном приложении.
     
     
  • 5.38, adolfus (ok), 03:06, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Повредить стек в си нереально, поскольку в языке нет возожности произвольно двигать вершину стека. Изначально язык этот проектировался, чтобы у програмиста не было в принципе возможности перекосить стек -- отсюда блоки, всегда оставляющие стек в том состоянии, который был перед ними. Вне зависимости от того, что вы напишете между { и } эти скобки вернут стек в исходное состояние. Максимум, Вы можете исчерпать виртуальную память, выделенную под стек. С таким успехом можно исчерпать любой ресурс в любом языке.
     
     
  • 6.41, Аноним (10), 03:46, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже так думал, но потом у меня ЕМНИП получилось это сделать.

    >Вне зависимости от того, что вы напишете между { и } эти скобки вернут стек

    А если повредить до скобочек? Вооот. Но компилятор не жаловался, я был удивлён. Код прекрасно работал без проблем, но как потом оказалось не без проблем.

     
     
  • 7.42, adolfus (ok), 03:57, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    До скобочек ничего повредить невозможно -- абсолютно весь исполняемый код находится внутри скобочек, составляющих тело функций. Вне скобочек находятся только данные и все они вне стека.
    Было бы интересно взглянуть на Ваш код и компилятор.
     
     
  • 8.44, Аноним (10), 13:22, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Во всяком случае, санитизер триггерился на повреждение стека, но только когда да... текст свёрнут, показать
     
     
  • 9.54, adolfus (ok), 21:20, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Согласно стандарту, массив передается в функцию в виде указателя на его первый э... текст свёрнут, показать
     
     
  • 10.55, Аноним (10), 21:36, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, я про стек, и передачу указателя на него Пока вызывающий блок кода жив, ег... текст свёрнут, показать
     
     
  • 11.56, Аноним (10), 21:38, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    По-моему пришлось отказаться от передачи указателя и заменить его на стандартное... текст свёрнут, показать
     
  • 6.46, Аноним (46), 16:32, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Повредить стек в си нереально,

    И как только подобные тебе рукожопы ухитряются это делать — совершенно непонятно.

    [CODE]
    char buf[4];
    read(0, buf, 8);
    [/CODE]

     
     
  • 7.51, Аноним (51), 14:49, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это явно не про сабж, они кажется усвоили азы. Вот, даже в примере showcase:



    if (0 != strcmp(method, "GET"))



    Как ты думаешь, почему именно вот так? А не например ... != 0? :)
     
     
  • 8.53, Аноним (46), 16:52, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так я и не про сабж писал, а про сказочников, у которых в C невозможно повредить... текст свёрнут, показать
     
  • 7.57, adolfus (ok), 21:45, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Повредить стек в си нереально,
    > И как только подобные тебе рукожопы ухитряются это делать — совершенно непонятно.
    > [CODE]
    > char buf[4];
    > read(0, buf, 8);
    > [/CODE]

    Это какой-то п-ц.

     
  • 3.25, Аноним (25), 17:16, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Java-приложения не текут, там GC. Подергать GC - и память вернется. Если недостаточно дергается, можно потюнить через опции jvm.

    Понятно, что с точки зрения пользователя все равно, почему память выжрало, но технически это не утечка.

     
     
  • 4.26, Аноним (10), 17:24, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если оно использует нативные батарейки (а это любое жава приложение которое желает не тормозить), то течёт ещё как. Пока вся память не кончится, а потом ещё немного, и это хорошо, если ещё есть кому прибить.
     
     
  • 5.43, Аноним (43), 13:16, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так это плюсовый код течёт
     
     
  • 6.45, Аноним (10), 13:55, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну так это плюсовый код течёт

    Джаве от этого не легче. Особенно утекают разнообразные "ресурсы" как я понимаю. А сама джава тоже любит забивать всю выделенную ей память и умирать в муках, гц с каждым вызовом её освобождает всё меньше и меньше пока она не съедает сама себя. При этом данных визуально больше не используется в приложении, ну не гигабайты же.

     
  • 4.52, Аноним (-), 14:59, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Java-приложения не текут, там GC. Подергать GC - и память вернется.

    Или не вернется. Так бывает. А замечают только когда оно гигабайтами жрет.

    > Если недостаточно дергается, можно потюнить через опции jvm.

    Гораздо прикольнее когда хоть обдергайся, а не отдается. Счастливой отладки!

     
  • 3.31, Аноним (31), 19:55, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Си тоже можно создать трудноуловимые утечки, если удалять память приходится в нескольких местах. Ибо, если программист уверен, что "объект" больше не используется, то это не значит, что при будущих изменениях кода всё будет так же.
     
     
  • 4.39, adolfus (ok), 03:20, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Объет "больше не используется", если память, под него выделенная, освобождена.Если не  освобождена, объект используется. Читайте стандарт на язык 9899 (9899-2011 есть на либрусеке) -- там поведение программы детальнейшим образом расписано. Просто народ пребывает в крайней степени самоуверенности и не интересуется ситуациями, которые в стандарте описываются, как "поведение не определено" и "поведение может зависеть от реализации", а так же не вникает в саму философию языка. Не интересуется каких языковых конструкций следует избегать. Язык си -- это язык, четко выстроенный на выражениях, а изменение состояния программы (изменение lvalue) является побочным, хоть и необходимым, эффектом вычисления выражений. Даже присваивание -- это побочный эффект выражения, в котором присутствует оператор присваивания. Те, кто начал программировать не с языка си, а с какого-нибудь операторного языка типа паскаля или даже питона, иcпытывают существенные трудности при программировании на си, поскольку думают именно императивно в терминах операторов. Это и является источником чуть менее, чем всех ошибок программирования на си.
     
  • 2.12, Dzen Python (ok), 13:51, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ой, какие по сути-то там уязвимости? Проверка на длину буфера и указатели, все.
     
  • 2.17, Аноним (16), 14:10, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Дыры это в пхп и в нод.жс
     

  • 1.6, Аноним (6), 13:08, 31/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    > FreeBSD, Windows, OpenBSD, NetBSD

    Правильно, что поставили вантуз в один ряд с бздосями.

     
     
  • 2.9, Аноним (-), 13:41, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32
    >> FreeBSD, Windows, OpenBSD, NetBSD
    > Правильно, что поставили вантуз в один ряд с бздосями.
    > И нет, у меня совсем-совсем не бомбит при виде BSD! Воть!

    Однако, какое избирательное у местных Пингвиняш восприятие.

     
     
  • 3.11, Аноним (10), 13:50, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Просто Вантузятник порадовался за любимые ОС кодом которых он пользуется, от Линукса то ему никакой пользы. При чём тут Линуксоиды вообще?
     
     
  • 4.18, Аноним (-), 14:16, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> вантуз ... бздосями.
    > Просто Вантузятник порадовался за любимые ОС кодом которых он пользуется, от Линукса то ему никакой пользы.

    Да-да, "бъет^W обзывает - значит любит!" (с)
    Кстати, ус поправь, а то отклеился.

    > При чём тут Линуксоиды вообще?

    Только у них от вида трех букв "BSD" начинается нестерпимый зуд и потребность написать хоть что-то, пусть даже и глупость.


     
  • 2.13, Аноним (13), 13:54, 31/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Правильно, что поставили вантуз в один ряд с бздосями.

    Там вот так написано:
    GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian и z/OS.

     

  • 1.36, Аноним (36), 17:34, 01/01/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А есть что-то для оргнанизации RPC на Сях подобного плана?
     
     
  • 2.40, adolfus (ok), 03:29, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В языке нету, в том числе и в стандартной библиотеке. Тем не менее, такой функционал реализуется через библитеки третьих сторон. Например, через NFS. Можно и проще, если не выходишь за пределы платформы хоста -- системные вызовы позволяют.
     
  • 2.47, Аноним (46), 16:41, 02/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    tirpc
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру