aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2012-04-19 23:31:50 +0200
committerDaniel Stenberg <daniel@haxx.se>2012-04-19 23:31:50 +0200
commit5cd524df187cbb2414d518f8933894399edbf572 (patch)
tree072cb77e2242bfd35ca688dbc3bd00dc0c345493
parent94111bbbd4f2c875bc33c9c84f6e365c1a1434d7 (diff)
singleipconnect: return OK even when Curl_socket() fails
Commit 9109cdec11ee5a brought this regression (shipped since 7.24.0). The singleipconnect() function must not return an error if Curl_socket() returns an error. It should then simply return OK and pass a SOCKET_BAD back simply because that is how the user of this function expects it to work and something else is not fine. Reported by: Blaise Potard Bug: http://curl.haxx.se/bug/view.cgi?id=3516508
-rw-r--r--lib/connect.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/connect.c b/lib/connect.c
index 2d592291d..42b626f1a 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -881,7 +881,10 @@ singleipconnect(struct connectdata *conn,
res = Curl_socket(conn, ai, &addr, &sockfd);
if(res)
- return res;
+ /* Failed to create the socket, but still return OK since we signal the
+ lack of socket as well. This allows the parent function to keep looping
+ over alternative addresses/socket families etc. */
+ return CURLE_OK;
/* store remote address and port used in this connection attempt */
if(!getaddressinfo((struct sockaddr*)&addr.sa_addr,