Skip to content

HTTPS-RR use in HTTP/3#21253

Closed
icing wants to merge 2 commits into
curl:masterfrom
icing:http3-ech-httpsrr
Closed

HTTPS-RR use in HTTP/3#21253
icing wants to merge 2 commits into
curl:masterfrom
icing:http3-ech-httpsrr

Conversation

@icing
Copy link
Copy Markdown
Contributor

@icing icing commented Apr 7, 2026

When HTTPS-RR is needed for the HTTP/3 handshake, delay the connect until it arrives. Relevant only for TLS backends that support ECH, for now.

When HTTPS-RR is needed for the HTTP/3 handshake, delay the connect until
it arrives. Relevant only for TLS backends that support ECH, for now.
@icing icing added connecting & proxies HTTP/3 h3 or quic related labels Apr 7, 2026
@icing icing requested a review from bagder April 7, 2026 12:20
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR ensures that when ECH requires HTTPS RR information for the HTTP/3 (QUIC) handshake, the QUIC connect is delayed until the HTTPS RR result is available (or resolution completes), avoiding premature handshake attempts.

Changes:

  • Exposes TLS-backend helpers (Curl_ossl_need_httpsrr, Curl_wssl_need_httpsrr) to indicate when HTTPS RR is required for ECH.
  • Adds “delay connect until HTTPS RR is resolved” logic to HTTP/3 connect paths (ngtcp2 and quiche).
  • Adjusts ECH-related log messages to refer generically to “HTTPS RR”.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
lib/vtls/wolfssl.h Declares Curl_wssl_need_httpsrr() for cross-module use.
lib/vtls/wolfssl.c Implements Curl_wssl_need_httpsrr() and uses it to delay TLS connect until HTTPS RR is known; updates ECH log text.
lib/vtls/openssl.h Declares Curl_ossl_need_httpsrr() for cross-module use.
lib/vtls/openssl.c Implements Curl_ossl_need_httpsrr() (with stub when unsupported), uses it to delay TLS connect until HTTPS RR is known; updates ECH log text.
lib/vquic/curl_quiche.c Delays QUIC connect when OpenSSL/BoringSSL ECH needs HTTPS RR and it’s not resolved yet.
lib/vquic/curl_ngtcp2.c Adds backend-aware helper to decide if HTTPS RR is needed and delays QUIC connect until HTTPS RR is resolved.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/vquic/curl_ngtcp2.c Outdated
Comment thread lib/vtls/openssl.c
@bagder bagder closed this in d99df64 Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

3 participants