ConnectionExists() now returns FALSE immediately if it finds a connection
authorDaniel Stenberg <daniel@haxx.se>
Thu, 1 Nov 2001 13:54:32 +0000 (13:54 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 1 Nov 2001 13:54:32 +0000 (13:54 +0000)
that is dead, because it can only find one entry anyway and if that is dead
there won't be any other entry that matches

lib/url.c

index 0d0cf6a..6b2a3a8 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -996,10 +996,20 @@ ConnectionExists(struct SessionHandle *data,
         }
         dead = SocketIsDead(check->firstsocket);
         if(dead) {
+          /*
+           * Even though the connection seems to have passed away, we could
+           * still make an effort to get the name information, as we intend to
+           * connect to the same host again.
+           *
+           * This is now subject to discussion. What do you think?
+           */
           infof(data, "Connection %d seems to be dead!\n", i);
           Curl_disconnect(check); /* disconnect resources */
           data->state.connects[i]=NULL; /* nothing here */
-          continue; /* try another one now */
+
+          /* There's no need to continue search, because we only store
+             one connection for each unique set of identifiers */
+          return FALSE;
         }
 
         *usethis = check;