diff options
author | Frank Meier <frank.meier@ergon.ch> | 2014-08-11 00:06:20 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-08-12 23:33:56 +0200 |
commit | 01368d395ccdd8cae450c053f6275617850da60f (patch) | |
tree | 0f8bb3498d978d315ff66d21866bbfde56142ab1 /lib/conncache.c | |
parent | cb1f18661ae7fa43acee1824d0428ea6a1a8f611 (diff) | |
download | curl-01368d395ccdd8cae450c053f6275617850da60f.tar.gz |
create_conn: prune dead connections
Bringing back the old functionality that was mistakenly removed when the
connection cache was remade. When creating a new connection, all the
existing ones are checked and those that are known to be dead get
disconnected for real and removed from the connection cache. It helps
the cache from holding on to very many stale connections and aids in
keeping down the number of system sockets in wait states.
Help-by: Jonatan Vela <jonatan.vela@ergon.ch>
Bug: http://curl.haxx.se/mail/lib-2014-06/0189.html
Diffstat (limited to 'lib/conncache.c')
-rw-r--r-- | lib/conncache.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/conncache.c b/lib/conncache.c index 290638ea0..5bbcf3c86 100644 --- a/lib/conncache.c +++ b/lib/conncache.c @@ -202,6 +202,7 @@ void Curl_conncache_foreach(struct conncache *connc, struct connectdata *conn; bundle = he->ptr; + he = Curl_hash_next_element(&iter); curr = bundle->conn_list->head; while(curr) { @@ -213,8 +214,6 @@ void Curl_conncache_foreach(struct conncache *connc, if(1 == func(conn, param)) return; } - - he = Curl_hash_next_element(&iter); } } |