Новая версия curl 7.66.0 с начальной поддержкой HTTP/3

Доступна новая версия утилиты для получения и отправки данных по сети — curl 7.66.0, предоставляющей возможность гибкого формирования запроса с заданием таких параметров, как cookie, user_agent, referer и любых других заголовков. cURL поддерживает HTTP, HTTPS, HTTP/2.0, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP и другие сетевые протоколы. Одновременно вышло обновление параллельно развиваемой библиотеки libcurl, предоставляющей API для задействования всех функций curl в программах на таких языках, как Си, Perl, PHP, Python.

В новом выпуске исправлено 77 ошибок и реализовно несколько новшеств:

  • Добавлена начальная поддержка протокола HTTP/3, которая пока не доведена до полностью работоспособного вида и по умолчанию отключена (например, пока не готов обработчик завершения соединения, не работает распараллеливание и обработка больших запросов). Для включения HTTP/3 необходима пересборка с бэкендами quiche или ngtcp2+nghttp3. Для использования предложен параметр »--http3» и опция libcurl «CURLOPT_HTTP_VERSION»;
  • Добавлены параметры »-Z список URL» (»--parallel») и »--parallel-max», позволяющие организовать одновременную загрузку списка URL в несколько потоков;
  • Добавлена возможность задания другого идентификатора для авторизации в SASL, указываемого с использованием параметра »--sasl-authzid» или опции CURLOPT_SASL_AUTHZID (идентификатор аутентификации передаётся через CURLOPT_USERPWD);
  • Реализована обработка HTTP-заголовка Retry-After и кода возврата 429 при использовании параметра »--retry» или опции CURLINFO_RETRY_AFTER. Заголовок Retry-After определяет задержку перед отправкой последующих запросов, в случае получения кодов ответа 429 (Too Many Requests), 503 (Service Unavailable) или 301 (Moved Permanently);
  • Добавлена функция curl_multi_poll (), идентичная curl_multi_wait (), за исключением случаев, когда нет файловых дескрипторов для ожидания (curl_multi_wait сразу завершает работу, а curl_multi_poll вводит небольшую задержку перед выходом для исключения ситуаций возникновения паразитной нагрузки из-за цикличного вызова);
  • Появилась возможность запуска в окружении Plan 9;
  • Устранены уязвимости: CVE-2019–5481 — двойное освобождение блока памяти в FTP-KRB (kerberos over FTP); CVE-2019–5482 — переполнение буфера в обработчике TFTP.



Источник: http://www.opennet.ru/opennews/art.shtml? num=51540

© OpenNet