url: allow DoH transfers to override max connection limit

When reaching the set maximum limit of allowed connections, allow a new
connection anyway if the transfer is created for the (internal) purpose
of doing a DoH name resolve. Otherwise, unrelated "normal" transfers can
starve out new DoH requests making it impossible to name resolve for new
transfers.

Bug: https://curl.se/mail/lib-2024-06/0001.html
Reported-by: kartatz
Closes #13880
This commit is contained in:
Daniel Stenberg 2024-06-04 17:00:05 +02:00
parent 998b17ea7f
commit b049388d47
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -3662,10 +3662,16 @@ static CURLcode create_conn(struct Curl_easy *data,
conn_candidate = Curl_conncache_extract_oldest(data);
if(conn_candidate)
Curl_disconnect(data, conn_candidate, FALSE);
else {
infof(data, "No connections available in cache");
connections_available = FALSE;
}
else
#ifndef CURL_DISABLE_DOH
if(data->set.dohfor)
infof(data, "Allowing DoH to override max connection limit");
else
#endif
{
infof(data, "No connections available in cache");
connections_available = FALSE;
}
}
if(!connections_available) {