mORMot2 DailyЕжедневный обзор коммитов апстрима

Лимиты redirects унифицированы, а ожидание POSIX-процессов завершается вовремя

HTTP-клиенты теперь одинаково применяют RedirectMax в WinHTTP и libcurl, используют более строгую политику downgrade в WinHTTP и включают TLS 1.3 на поддерживаемых версиях Windows. POSIX RunRedirect больше не ждёт весь polling delay после закрытия stdout дочерним процессом. Пользователям ARM также нужен последующий fix нормализации DoubleToAscii.

Коротко

  • Используйте build 2.4.17538 со всеми fixes для redirects, TLS и DoubleToAscii.
  • TWinHttp и TCurlHttp теперь соблюдают RedirectMax, а не используют его только как переключатель.
  • POSIX RunRedirect возвращается после выхода дочернего процесса без ожидания заданной задержки чтения.
  • WinHTTP предлагает TLS 1.3 на Windows 11 и Windows Server 2022 или новее.

Рекомендации по обновлению

Переходите на build 2.4.17538. Проверьте лимиты redirects и запрет HTTPS-to-HTTP в WinHTTP и libcurl, запуск процессов через RunRedirect на POSIX и форматирование Double на ARM. На Windows 11 и Server 2022 также проверьте TLS 1.3 через TWinHttp.

Сборка2.4.17531 → 2.4.17538
Коммиты9
Строки+153 -75
Чтение2 мин

7 из 7 записей · 9 коммитов в апстриме

Сюжеты
# Запись Категория Модули
1 Высокий Форматирование Double на ARM читает правильное слово нормализации d2a_diy_fp_multiply в mormot.core.text после mul64x64 теперь проверяет PQWordRec(@result.f)^.h вместо элемента 1 в PQWordArray. Новый доступ прямо указывает на старшие 32 бита 64-битного результата. Исправления mormot.core.text 415d148c+1-1

core: fixed DoubleToAscii() normalization after mul64x64()

Влияние

Сборки Delphi/FPC для ARM больше не используют неверное слово при нормализации Grisu, предотвращая ошибочный вывод DoubleToAscii после предыдущей ARM-оптимизации.

Модули

zen010101 · 05:06 UTC · открыть коммит на GitHub →

2 Средний POSIX RunRedirect возвращается сразу после закрытия pipe дочерним процессом WaitReadPending теперь трактует EINTR как отсутствие данных и документирует отрицательный результат для HUP/ERR/NVAL без читаемых байтов. RedirectOutput в RunRedirect сразу выходит при таком результате; POSIX regression cases покрывают вывод, shell-команды и exit codes. Исправления mormot.core.os+1 f2b61cbc+43-2

core: RunRedirect() on POSIX returns again as soon as the child exits

Влияние

POSIX backends с короткими командами больше не ждут истечения waitfordelayms после выхода child process. Сигнал, прервавший poll, повторяется внешним циклом и не считается закрытым pipe.

zen010101 · 10:21 UTC · открыть коммит на GitHub →

3 Средний WinHTTP соблюдает число redirects и блокирует downgrade с HTTPS TWinHttp.InternalSendRequest задаёт WINHTTP_OPTION_REDIRECT_POLICY как NEVER при RedirectMax=0 и как DISALLOW_HTTPS_TO_HTTP иначе. RedirectMax также передаётся в WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS, а ошибка любой опции вызывает exception. Исправления mormot.net.client e37c4af5+16-9

net: honor RedirectMax and check redirect policy in TWinHttp

Влияние

TWinHttp больше не превышает настроенный лимит redirects и отвергает downgrade HTTPS-to-HTTP. Backends, полагавшиеся на такие переходы или игнорировавшие ошибки опций, могут получить ошибки запросов.

Стоит взглянуть

Проверьте callers TWinHttp с redirects, особенно цепочки около RedirectMax и endpoints с переходом HTTPS-to-HTTP.

Модули

Arnaud Bouchez · 11:01 UTC · открыть коммит на GitHub →

4 Средний libcurl не следует большему числу redirects, чем разрешает RedirectMax TCurlHttp.InternalCreateRequest по-прежнему переключает coFollowLocation через RedirectMax, но теперь также задаёт libcurl coMaxRedirs равным настроенному положительному значению. Исправления mormot.net.client 5297eabb+6-3

net: honor RedirectMax in TCurlHttp

Влияние

TCurlHttp теперь останавливает цепочку на лимите framework, а не на default libcurl, поэтому опция ведёт себя одинаково в разных HTTP backends.

Стоит взглянуть

Проверьте TCurlHttp-запросы с длинными цепочками, если RedirectMax отличается от default libcurl.

Модули

Arnaud Bouchez · 10:49 UTC · открыть коммит на GitHub →

5 Средний WinHTTP включает TLS 1.3 на поддерживаемых версиях Windows WindowsSpecs получает wsTls13 для Windows 11 и Windows Server 2022 или новее. TWinHttp.InternalGetProtocols добавляет WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 при наличии capability, а SChannel использует ту же проверку. Новые возможности mormot.core.os+3 fe064e35+16-13

net: TWinHttp enable TLS 1.3 on Windows 11 or Server 2022

Влияние

Соединения TWinHttp на поддерживаемых Windows могут согласовать TLS 1.3 без изменений приложения. Старые версии Windows сохраняют прежний набор TLS-протоколов.

Стоит взглянуть

Проверьте TLS negotiation и совместимость proxy на Windows 11/Server 2022, если версии транспорта ограничены политикой.

Публичный API

  • TWindowsSpec.wsTls13added — Обозначает официальную поддержку TLS 1.3 на Windows 11 и Windows Server 2022 или новее.

Arnaud Bouchez · 10:58 UTC · открыть коммит на GitHub →

6 Низкий Настройка redirects WinHTTP очищена, а объединённый regression test удалён TWinHttp.InternalSendRequest переносит присваивание длины aData в отдельный оператор после вызова RedirectMax. Временный regression method RunRedirect из merged contribution удалён из test.core.base. Внутреннее устройство mormot.net.client e84e07fc+5-37

net: some refactoring after previous commits

Влияние

Public API и ожидаемое runtime-поведение не меняются. Код WinHTTP стал яснее, но кратковременный POSIX regression test удалён из набора тестов.

Модули

Arnaud Bouchez · 14:17 UTC · открыть коммит на GitHub →

7 Низкий Документация обновляет список участников и поддержку компиляторов CONTRIBUTORS.md добавляет новых участников. README.md заменяет фиксированную latest-версию Delphi общей формулировкой, добавляет проверку Delphi 13.2 и уточняет предварительную поддержку LLVM-компиляторов. Документация d17dfbfe+22-7

doc: refined main markdown files - especially the latest contributors! Thanks guys!

Влияние

Поведение приложений и runtime не меняется. Документированная матрица теперь включает Delphi 13.2 и точнее описывает cross-platform статус Delphi.

Arnaud Bouchez · 14:31 UTC · открыть коммит на GitHub →

Активность апстрима коммитов в день · последние 60 дней
Коммиты977
Активных дней44/60
Пик активности2026-09-30
Максимум60
2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 26 commits2026-08-28: 11 commits2026-08-29: 10 commits2026-08-30: 1 commit2026-08-31: 23 commits2026-09-01: 0 commits2026-09-02: 20 commits2026-09-03: 29 commits2026-09-04: 35 commits2026-09-05: 13 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 23 commits2026-09-09: 10 commits2026-09-10: 17 commits2026-09-11: 23 commits2026-09-12: 14 commits2026-09-13: 9 commits2026-09-14: 7 commits2026-09-15: 4 commits2026-09-16: 24 commits2026-09-17: 26 commits2026-09-18: 21 commits2026-09-19: 59 commits2026-09-20: 13 commits2026-09-21: 5 commits2026-09-22: 34 commits2026-09-23: 17 commits2026-09-24: 57 commits2026-09-25: 22 commits2026-09-26: 26 commits2026-09-27: 0 commits2026-09-28: 2 commits2026-09-29: 19 commits2026-09-30: 60 commits2026-10-01: 26 commits2026-10-02: 30 commits2026-10-03: 32 commits2026-10-04: 15 commits2026-10-05: 1 commit2026-10-06: 26 commits2026-10-07: 37 commits2026-10-08: 27 commits2026-10-09: 35 commits2026-10-10: 33 commits2026-10-11: 9 commits2026-10-12: 11 commits2026-10-13: 35 commits
2026-08-152026-10-13