diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-12-10 10:39:16 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-12-11 09:25:56 +0100 |
commit | 1d5c427d7fd6c206de4b010f618659a7a9b38cff (patch) | |
tree | 590548f719de032bf37a5f0ee46966b648c7dab9 | |
parent | 2c0362ee045521e9b6c757c1f07ceba69d083ef2 (diff) |
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.c | 3 |
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); |