From 5cd524df187cbb2414d518f8933894399edbf572 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 19 Apr 2012 23:31:50 +0200 Subject: [PATCH] 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 --- lib/connect.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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,