浏览代码

Merge pull request #1981 from killsap/development

Possible fix to issue #1951
Areloch 8 年之前
父节点
当前提交
3b17e25a4c
共有 1 个文件被更改,包括 11 次插入5 次删除
  1. 11 5
      Engine/source/platform/platformNet.cpp

+ 11 - 5
Engine/source/platform/platformNet.cpp

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