Skip to content

Update quic to 1.6.1 and add IPv6 and 0-RTT to the HTTP/3 client#862

Merged
benoitc merged 3 commits into
masterfrom
h3-ipv6-0rtt-quic-1.6.1
Jun 3, 2026
Merged

Update quic to 1.6.1 and add IPv6 and 0-RTT to the HTTP/3 client#862
benoitc merged 3 commits into
masterfrom
h3-ipv6-0rtt-quic-1.6.1

Conversation

@benoitc
Copy link
Copy Markdown
Owner

@benoitc benoitc commented Jun 2, 2026

benoitc added 3 commits June 2, 2026 21:49
Bump the quic dependency to 1.6.1. Forward a family (inet|inet6) and
happy_eyeballs option into the QUIC connect options so callers can select
the address family; quic does DNS and Happy Eyeballs and accepts IPv6
literals. This also fixes a gap where ssl_options never reached H3 on the
pooled path.

Add 0-RTT and session resumption. The session ticket is captured from the
new quic_h3 owner messages and cached in the pool keyed by host/port/
transport, then replayed on the next connection. Real request-in-0-RTT is
sent before the connection reports connected on the one-shot hackney_h3
path for bodyless requests, with a single 1-RTT retry on rejection; the
pooled path uses the ticket for a resumed handshake. Gated by the zero_rtt
option, and an explicit session_ticket overrides the cache.

New hackney_h3 functions: early_data_accepted/1, get_session_ticket/1,
wait_session_ticket/2. New hackney_pool functions: get_h3_session/4,
store_h3_session/5, delete_h3_session/4.
The ubuntu-24.04-arm runner reports ImageOS=ubuntu24-arm64, which setup-beam
cannot map, failing the job before it builds. Override it to ubuntu24.
The in-process WebTransport handshake over UDP loopback occasionally stalls
under CI load and returns connect_timeout, flaking a random integration
subtest. Retry the connect a few times in the test helper.
@benoitc benoitc merged commit b39acb5 into master Jun 3, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant