mirror of
https://github.com/curl/curl.git
synced 2024-11-27 05:50:21 +08:00
connect: Return the socket descriptor even on fail
singleipconnect() did not return the open socket descriptor on some errors, thereby sometimes causing a socket leak. This patch ensures the socket is always returned.
This commit is contained in:
parent
1f0616ea1a
commit
ed1662c374
@ -1027,6 +1027,8 @@ singleipconnect(struct connectdata *conn,
|
||||
conn->bits.ipv6 = (addr.family == AF_INET6)?TRUE:FALSE;
|
||||
#endif
|
||||
|
||||
*sockp = sockfd;
|
||||
|
||||
if(-1 == rc) {
|
||||
switch (error) {
|
||||
case EINPROGRESS:
|
||||
@ -1040,7 +1042,6 @@ singleipconnect(struct connectdata *conn,
|
||||
case EAGAIN:
|
||||
#endif
|
||||
#endif
|
||||
*sockp = sockfd;
|
||||
return CURLE_OK;
|
||||
|
||||
default:
|
||||
@ -1053,8 +1054,6 @@ singleipconnect(struct connectdata *conn,
|
||||
return CURLE_COULDNT_CONNECT;
|
||||
}
|
||||
}
|
||||
else
|
||||
*sockp = sockfd;
|
||||
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user