diff options
author | CoprDistGit <infra@openeuler.org> | 2025-03-04 03:28:50 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2025-03-04 03:28:50 +0000 |
commit | 510937df92473c5a6830d87f078386db8dbf896d (patch) | |
tree | 64d9befb90cb19890926aedd71df1a7a5452e08c /backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch | |
parent | dbf64f99d0f0a31203092f9afdc6c07e13917313 (diff) |
automatic import of curlopeneuler24.03_LTS_SP1
Diffstat (limited to 'backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch')
-rw-r--r-- | backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch b/backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch new file mode 100644 index 0000000..11e7a50 --- /dev/null +++ b/backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch @@ -0,0 +1,49 @@ +From b049388d473a9a0189f3180e57e04a39a3793382 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <daniel@haxx.se> +Date: Tue, 4 Jun 2024 17:00:05 +0200 +Subject: [PATCH] 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 + +Conflict:NA +Reference:https://github.com/curl/curl/commit/b049388d473a9a0189f3180e57e04a39a3793382 +--- + lib/url.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/lib/url.c b/lib/url.c +index 41e35e153..4eabf0c87 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) { +-- +2.33.0 + |