Consider that the connect() succeded if errno EISCONN

Apparently on some systems, subsquent connect() calls may fail with EISCONN
error, to indicate that the connection succeded in the background, instead
of returning 0.
This commit is contained in:
Florent Le Coz
2014-02-22 23:36:03 +01:00
parent 730cc6e1bd
commit 541af5236e
+2 -1
View File
@@ -97,7 +97,8 @@ void SocketHandler::connect(const std::string& address, const std::string& port)
for (struct addrinfo* rp = addr_res; rp; rp = rp->ai_next)
{
if (::connect(this->socket, rp->ai_addr, rp->ai_addrlen) == 0)
if (::connect(this->socket, rp->ai_addr, rp->ai_addrlen) == 0
|| errno == EISCONN)
{
log_info("Connection success.");
this->connected = true;