ip happy eyeballing: keep attempts running

When `CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS` expires, start the next ip
connect attempt, but keep all ongoing attempts alive.

Separate happy-eyeballs connection filter into own source files.

Closes #18105
This commit is contained in:
Stefan Eissing 2025-07-31 10:23:35 +02:00 committed by Daniel Stenberg
parent 4654493fed
commit af69c9d636
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 1071 additions and 955 deletions

View file

@ -41,6 +41,7 @@
#include "cf-h2-proxy.h"
#include "cf-haproxy.h"
#include "cf-https-connect.h"
#include "cf-ip-happy.h"
#include "socks.h"
#include "curlx/strparse.h"
#include "vtls/vtls.h"
@ -462,7 +463,7 @@ static struct trc_cft_def trc_cfts[] = {
{ &Curl_cft_udp, TRC_CT_NETWORK },
{ &Curl_cft_unix, TRC_CT_NETWORK },
{ &Curl_cft_tcp_accept, TRC_CT_NETWORK },
{ &Curl_cft_happy_eyeballs, TRC_CT_NETWORK },
{ &Curl_cft_ip_happy, TRC_CT_NETWORK },
{ &Curl_cft_setup, TRC_CT_PROTOCOL },
#if !defined(CURL_DISABLE_HTTP) && defined(USE_NGHTTP2)
{ &Curl_cft_nghttp2, TRC_CT_PROTOCOL },