Return correct error code from bind()
Closing the socket might overwrite errno so we need to save
its value.
diff --git a/common/network/TcpSocket.cxx b/common/network/TcpSocket.cxx
index 9ac1478..a25ee24 100644
--- a/common/network/TcpSocket.cxx
+++ b/common/network/TcpSocket.cxx
@@ -469,8 +469,9 @@
#endif
if (bind(sock, &sa.u.sa, listenaddrlen) == -1) {
+ int e = errorNumber;
closesocket(sock);
- throw SocketException("failed to bind socket", errorNumber);
+ throw SocketException("failed to bind socket", e);
}
// - Set it to be a listening socket