]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
conncache: CONNECT_ONLY connections assumed always in-use
authorDaniel Stenberg <daniel@haxx.se>
Tue, 10 Dec 2019 09:39:16 +0000 (10:39 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 11 Dec 2019 08:25:56 +0000 (09:25 +0100)
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

lib/conncache.c

index a23244cf64788a93ef8a668dadc51baa0a2f53c1..28044644bfcbba4610d209260e75e0064716ea03 100644 (file)
@@ -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);