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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user