Стоит взглянутьисправление или функция, которая может пригодиться
Лимиты 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.
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-оптимизации.
Рекомендуется обновиться
Обновите ARM-сборки и повторите тесты сериализации floating-point, особенно около границ нормализации Grisu.
Модули
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.
Рекомендуется обновиться
Обновите POSIX-сервисы, вызывающие RunRedirect с большим waitfordelayms, и проверьте вывод команд и exit codes.
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.
Модули
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.
Модули
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 или новее.
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 удалён из набора тестов.
Модули
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.