When connecting to a nonexisting address, SocketHelpers::connectSocket always returns true. Problem is:
if (result < 0) { #if JUCE_WINDOWS if (result == SOCKET_ERROR && WSAGetLastError() == WSAEWOULDBLOCK) #else if (errno == EINPROGRESS) #endif { if (waitForReadiness (handle, readLock, false, timeOutMillisecs) != 1) { setSocketBlockingState (handle, true); return false; } } } setSocketBlockingState (handle, true); resetSocketOptions (handle, false, false); return true;
if errno == SOCKET_ERROR, true will be returned.
I propose:
if (result < 0) { #if JUCE_WINDOWS if (result == SOCKET_ERROR && WSAGetLastError() == WSAEWOULDBLOCK) #else if (errno == EINPROGRESS) #endif { if (waitForReadiness (handle, readLock, false, timeOutMillisecs) != 1) { setSocketBlockingState (handle, true); return false; } } else { return false; } }
Which should work...