From e54e55835e6caa07a5805e1b7d1e7e6e5e098b74 Mon Sep 17 00:00:00 2001 From: KIU Shueng Chuan Date: Tue, 12 Nov 2013 00:07:06 +0800 Subject: [PATCH] return error to caller on bind error --- src/signaler.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/signaler.cpp b/src/signaler.cpp index cc6c1a63..89569fad 100644 --- a/src/signaler.cpp +++ b/src/signaler.cpp @@ -348,7 +348,15 @@ int zmq::signaler_t::make_fdpair (fd_t *r_, fd_t *w_) addr.sin_addr.s_addr = htonl (INADDR_LOOPBACK); addr.sin_port = htons (signaler_port); rc = bind (listener, (const struct sockaddr*) &addr, sizeof (addr)); - wsa_assert (rc != SOCKET_ERROR); + if (rc == SOCKET_ERROR) { + int saved_errno = WSAGetLastError (); + closesocket (listener); + SetEvent (sync); + CloseHandle (sync); + // Set errno from saved value + errno = wsa_error_to_errno (saved_errno); + return -1; + } // Listen for incomming connections. rc = listen (listener, 1);