curl/lib/vquic
Stefan Eissing 567803db79
dns: https-eyeballing async
Make cf-https-connect work async correctly:
- only start first baller when at least one A/AAAA address
  is available
- select first connect attempt after that with HTTPS-RR info
  there or not.
- select second connect attempt only when HTTPS-RR is resolved
  (may have resolved to "not known") and select possible ALPN
  from things known by then. May not select any second attempt
  when first already covers everything.

This means when the HTTPS-RR is known at/before the first address
is resolved, everything behaves as before. When the HTTPS-RR is
late, a first connection attempt will have been started. Any
ALPN preference from the HTTPS-RR that is not already ongoing will
then start the second attempt.

For HTTPS-RRs that recommend 2 or more ALPNs, the first will always
be attempted: either it is already ongong or it will be the ALPN
for the second attempt. The 2nd ALPN recommendation from HTTPS-RR
*may* be honored or not, depending on what is already selected.

The difference in behaviour between early/late HTTPS-RR resolve
cannot be helped - unless we do not perform any attempts before
it arrives. Trade offs.

Closes #21267
2026-04-08 23:15:39 +02:00
..
curl_ngtcp2.c cf-dns: connection filter for DNS queries 2026-03-30 13:28:38 +02:00
curl_ngtcp2.h cf-dns: connection filter for DNS queries 2026-03-30 13:28:38 +02:00
curl_quiche.c spelling: fix typos 2026-04-01 22:50:12 +02:00
curl_quiche.h cf-dns: connection filter for DNS queries 2026-03-30 13:28:38 +02:00
vquic-tls.c keylog: drop unused/redundant includes and guards 2026-03-28 12:20:03 +01:00
vquic-tls.h badwords: rework exceptions, fix many of them 2026-03-12 01:01:16 +01:00
vquic.c dns: https-eyeballing async 2026-04-08 23:15:39 +02:00
vquic.h cf-dns: connection filter for DNS queries 2026-03-30 13:28:38 +02:00
vquic_int.h clang-tidy: add more missing parentheses in macro values 2026-02-25 15:43:23 +01:00