From: Daniel Stenberg Date: Tue, 10 Dec 2019 09:39:16 +0000 (+0100) Subject: conncache: CONNECT_ONLY connections assumed always in-use X-Git-Tag: curl-7_68_0~81 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1d5c427d7fd6c206de4b010f618659a7a9b38cff;p=thirdparty%2Fcurl.git 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 --- diff --git a/lib/conncache.c b/lib/conncache.c index a23244cf64..28044644bf 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);