aboutsummaryrefslogtreecommitdiff
path: root/lib/url.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2006-09-11 20:50:58 +0000
committerDaniel Stenberg <daniel@haxx.se>2006-09-11 20:50:58 +0000
commit7c5745720aca27f38dc875a39d43cc3aba189471 (patch)
tree0ca0631c3d7a21bc00e9d5981ae174bc6ca12cf3 /lib/url.c
parent00ae13f96630dc5c2a9add25a4337710f8fcdaf5 (diff)
If the current connection doesn't fit to get added to the connection cache,
we certainly MUST NOT kill an active connection... Problem tracked down thanks to Michael Wallner's excellent test program.
Diffstat (limited to 'lib/url.c')
-rw-r--r--lib/url.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/url.c b/lib/url.c
index 14def325a..e014c8ee4 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -2002,7 +2002,7 @@ ConnectionKillOne(struct SessionHandle *data)
for(i=0; data->state.connc && (i< data->state.connc->num); i++) {
conn = data->state.connc->connects[i];
- if(!conn)
+ if(!conn || conn->inuse)
continue;
/*
@@ -2078,7 +2078,10 @@ ConnectionStore(struct SessionHandle *data,
if(i == data->state.connc->num) {
/* there was no room available, kill one */
i = ConnectionKillOne(data);
- infof(data, "Connection (#%d) was killed to make room\n", i);
+ if(-1 != i)
+ infof(data, "Connection (#%d) was killed to make room\n", i);
+ else
+ infof(data, "This connection did not fit in the connection cache\n");
}
conn->connectindex = i; /* Make the child know where the pointer to this