Skip to content

v1.0.16 - upstream sync (winddriver #205-#208 merged)

Choose a tag to compare

@freitasjca freitasjca released this 09 Oct 08:14
· 3 commits to master since this release

Upstream sync: the fork's code is now upstream's

winddriver/Delphi-Cross-Socket merged every fork-only change on 2026-10-08.
This release syncs the fork to upstream 12846a1. Apart from IDE files the
fork does not track, Net/ and Utils/ are now identical to upstream.

What the fork still adds:

  • boss.json, so the library installs with Boss;
  • the vendored CnPack subset under CnPack/ (unchanged in this release).

Now from upstream

  • winddriver#205: HEAD responses and requests no longer loop. The header block used
    to be resent until the peer reset the connection, and a keep-alive client
    read the copies as its next response. The fork carried this fix since
    v1.0.13.
  • winddriver#206: a body that already has Content-Encoding is never compressed
    again.
    Previously the server could send gzip(gzip(body)) while announcing
    one gzip. The fork carried this since v1.0.14.
  • winddriver#207: ICrossSslSocket.SetMinTlsVersion. It raises the minimum to TLS
    1.3 (tmvTls13) on the OpenSSL backend and reads the context back to
    confirm, raising ESslContextInvalid if OpenSSL did not keep it. New in
    this fork release.
  • winddriver#208: TCrossHttpClient sends Content-Length: 0 for a POST, PUT or
    PATCH with an empty body (RFC 9110 §8.6). http.sys and some proxies answer
    411 otherwise. New in this fork release.
  • Maintainer follow-ups:
    • a client HEAD request now also drops any Content-Length or
      Transfer-Encoding the caller set;
    • TBaseParams.Remove removes every parameter with that name;
    • MbedTLS gains a SetMinTlsVersion that accepts TLS 1.2 only;
    • behaviour change: on a backend that does not override
      SetMinTlsVersion, the base implementation now raises for every value,
      tmvTls12 included. Call it only when you need TLS 1.3.

Validation (Windows / Delphi 12 Win64)

Built against this checkout:

  • horse-provider-crosssocket 1.0.28: integration suite 139/139 from a
    clean rebuild; TLS suite all passed, including the new TLS 1.3 minimum
    checks (a TLS 1.2 openssl s_client peer refused, TLS 1.3 served).
  • horse-provider-mormot test client (TCrossHttpClient): the http.sys
    backend went from 127/131 to 131/131, because winddriver#208 removed the 411 on
    empty PUT/POST bodies.

Next

The CnPack subset was last re-synced on 2026-06-29 and is behind cnpack/cnvcl
(one fix gives SHA-384/512 a wrong digest when data arrives in several
pieces). It will be updated in its own release.