Merge pull request #1981 from killsap/development

Possible fix to issue #1951
This commit is contained in:
Areloch 2017-04-17 20:07:06 -05:00 committed by GitHub
commit 3b17e25a4c

View file

@ -809,7 +809,8 @@ NetSocket Net::openConnectTo(const char *addressString)
error = Net::WrongProtocolType; error = Net::WrongProtocolType;
} }
if (error != NoError || error == NeedHostLookup) // Open socket
if (error == NoError || error == NeedHostLookup)
{ {
handleFd = openSocket(); handleFd = openSocket();
} }
@ -825,6 +826,10 @@ NetSocket Net::openConnectTo(const char *addressString)
setBlocking(handleFd, false); setBlocking(handleFd, false);
if (::connect(socketFd, (struct sockaddr *)&ipAddr, sizeof(ipAddr)) == -1 && if (::connect(socketFd, (struct sockaddr *)&ipAddr, sizeof(ipAddr)) == -1 &&
errno != EINPROGRESS) errno != EINPROGRESS)
{
error = PlatformNetState::getLastError();
if (error != Net::WouldBlock)
{ {
Con::errorf("Error connecting %s: %s", Con::errorf("Error connecting %s: %s",
addressString, strerror(errno)); addressString, strerror(errno));
@ -832,6 +837,7 @@ NetSocket Net::openConnectTo(const char *addressString)
handleFd = NetSocket::INVALID; handleFd = NetSocket::INVALID;
} }
} }
}
else else
{ {
PlatformNetState::smReservedSocketList.remove(handleFd); PlatformNetState::smReservedSocketList.remove(handleFd);