diff options
author | Mario Emmenlauer <memmenlauer@biodataanalysis.de> | 2020-09-09 13:43:15 +0200 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2020-09-15 20:39:44 +0200 |
commit | dd6c8c1069d74f47e81f47dc89285edf906a464e (patch) | |
tree | c0092bc0000b2d55e7088c294b851e8f4147ad0f | |
parent | 40cd0215f15ccbd2462bb855389467b0fd05b66a (diff) | |
download | thrift-dd6c8c1069d74f47e81f47dc89285edf906a464e.tar.gz |
TServerSocket.cpp: Ensure the server is really listening (via helper variable listening_)
Client: cpp
Patch: Mario Emmenlauer
This closes #2232
-rw-r--r-- | lib/cpp/src/thrift/transport/TServerSocket.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/cpp/src/thrift/transport/TServerSocket.cpp b/lib/cpp/src/thrift/transport/TServerSocket.cpp index 6b7652560..c917538d4 100644 --- a/lib/cpp/src/thrift/transport/TServerSocket.cpp +++ b/lib/cpp/src/thrift/transport/TServerSocket.cpp @@ -167,7 +167,13 @@ TServerSocket::~TServerSocket() { } 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::_setup_tcp_sockopts() { } void TServerSocket::listen() { - listening_ = true; #ifdef _WIN32 TWinsockSingleton::create(); #endif // _WIN32 @@ -538,6 +543,7 @@ void TServerSocket::listen() { } // The socket is now listening! + listening_ = true; } int TServerSocket::getPort() { |