summaryrefslogtreecommitdiff
path: root/backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-03-04 03:28:50 +0000
committerCoprDistGit <infra@openeuler.org>2025-03-04 03:28:50 +0000
commit510937df92473c5a6830d87f078386db8dbf896d (patch)
tree64d9befb90cb19890926aedd71df1a7a5452e08c /backport-url-allow-DoH-transfers-to-override-max-connection-limit.patch
parentdbf64f99d0f0a31203092f9afdc6c07e13917313 (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.patch49
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
+