From: Daniel Stenberg Date: Tue, 4 Jun 2024 15:00:05 +0000 (+0200) Subject: url: allow DoH transfers to override max connection limit X-Git-Tag: curl-8_9_0~297 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b049388d473a9a0189f3180e57e04a39a3793382;p=thirdparty%2Fcurl.git 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 --- diff --git a/lib/url.c b/lib/url.c index 41e35e1531..4eabf0c876 100644 --- a/lib/url.c +++ b/lib/url.c @@ -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) {