50 lines
1.5 KiB
Diff
50 lines
1.5 KiB
Diff
|
|
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
|
||
|
|
|