Merge pull request #63 from vibe-d/fix_connect_socket_callback

Call the callback on connectStream socket creation failure.
This commit is contained in:
Sönke Ludwig 2018-03-14 22:19:14 +01:00 committed by GitHub
commit 68b8f44957
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 2 deletions

View file

@ -570,6 +570,7 @@ enum ConnectStatus {
refused,
timeout,
bindFailure,
socketCreateFailure,
unknownError
}

View file

@ -90,7 +90,10 @@ final class PosixEventDriverSockets(Loop : PosixEventLoop) : EventDriverSockets
assert(on_connect !is null);
auto sockfd = createSocket(address.addressFamily, SOCK_STREAM);
if (sockfd == -1) return StreamSocketFD.invalid;
if (sockfd == -1) {
on_connect(StreamSocketFD.invalid, ConnectStatus.socketCreateFailure);
return StreamSocketFD.invalid;
}
auto sock = cast(StreamSocketFD)sockfd;

View file

@ -41,8 +41,10 @@ final class WinAPIEventDriverSockets : EventDriverSockets {
assert(m_tid == GetCurrentThreadId());
auto fd = WSASocketW(peer_address.addressFamily, SOCK_STREAM, IPPROTO_TCP, null, 0, WSA_FLAG_OVERLAPPED);
if (fd == INVALID_SOCKET)
if (fd == INVALID_SOCKET) {
on_connect(StreamSocketFD.invalid, ConnectStatus.socketCreateFailure);
return StreamSocketFD.invalid;
}
void invalidateSocket() @nogc @trusted nothrow { closesocket(fd); fd = INVALID_SOCKET; }