summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-12-10 10:39:16 +0100
committerDaniel Stenberg <daniel@haxx.se>2019-12-11 09:25:56 +0100
commit1d5c427d7fd6c206de4b010f618659a7a9b38cff (patch)
tree590548f719de032bf37a5f0ee46966b648c7dab9
parent2c0362ee045521e9b6c757c1f07ceba69d083ef2 (diff)
downloadcurl-1d5c427d7fd6c206de4b010f618659a7a9b38cff.tar.gz
conncache: CONNECT_ONLY connections assumed always in-use
This makes them never to be considered "the oldest" to be discarded when reaching the connection cache limit. The reasoning here is that CONNECT_ONLY is primarily used in combination with using the connection's socket post connect and since that is used outside of curl's knowledge we must assume that it is in use until explicitly closed. Reported-by: Pavel Pavlov Reported-by: Pavel Löbl Fixes #4426 Fixes #4369 Closes #4696
-rw-r--r--lib/conncache.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/conncache.c b/lib/conncache.c
index a23244cf6..28044644b 100644
--- a/lib/conncache.c
+++ b/lib/conncache.c
@@ -519,7 +519,8 @@ Curl_conncache_extract_oldest(struct Curl_easy *data)
while(curr) {
conn = curr->ptr;
- if(!CONN_INUSE(conn) && !conn->data && !conn->bits.close) {
+ if(!CONN_INUSE(conn) && !conn->data && !conn->bits.close &&
+ !conn->bits.connect_only) {
/* Set higher score for the age passed since the connection was used */
score = Curl_timediff(now, conn->lastused);