TServerSocket.cpp: Ensure the server is really listening (via helper variable listening_)
Client: cpp
Patch: Mario Emmenlauer
This closes #2232
diff --git a/lib/cpp/src/thrift/transport/TServerSocket.cpp b/lib/cpp/src/thrift/transport/TServerSocket.cpp
index 6b76525..c917538 100644
--- a/lib/cpp/src/thrift/transport/TServerSocket.cpp
+++ b/lib/cpp/src/thrift/transport/TServerSocket.cpp
@@ -167,7 +167,13 @@
}
bool TServerSocket::isOpen() const {
- return (serverSocket_ != THRIFT_INVALID_SOCKET);
+ if (serverSocket_ == THRIFT_INVALID_SOCKET)
+ return false;
+
+ if (!listening_)
+ return false;
+
+ return true;
}
void TServerSocket::setSendTimeout(int sendTimeout) {
@@ -324,7 +330,6 @@
}
void TServerSocket::listen() {
- listening_ = true;
#ifdef _WIN32
TWinsockSingleton::create();
#endif // _WIN32
@@ -538,6 +543,7 @@
}
// The socket is now listening!
+ listening_ = true;
}
int TServerSocket::getPort() {