summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Emmenlauer <memmenlauer@biodataanalysis.de>2020-09-09 13:43:15 +0200
committerJens Geyer <jensg@apache.org>2020-09-15 20:39:44 +0200
commitdd6c8c1069d74f47e81f47dc89285edf906a464e (patch)
treec0092bc0000b2d55e7088c294b851e8f4147ad0f
parent40cd0215f15ccbd2462bb855389467b0fd05b66a (diff)
downloadthrift-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.cpp10
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() {