Repository: thrift Updated Branches: refs/heads/master 74c99ba38 -> f793c2b3a
THRIFT-3957 TConnectedClient does not disconnect from clients when the receive timeout is reached. Client: C++ Patch: Claudius Heine <c...@denx.de> This closes #1122 Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/f793c2b3 Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/f793c2b3 Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/f793c2b3 Branch: refs/heads/master Commit: f793c2b3aab06af37b59a7fd96ef22c339a7b957 Parents: 74c99ba Author: Jim King <jk...@apache.org> Authored: Thu Nov 10 15:08:21 2016 -0500 Committer: Jim King <jk...@apache.org> Committed: Thu Nov 10 15:08:21 2016 -0500 ---------------------------------------------------------------------- lib/cpp/src/thrift/server/TConnectedClient.cpp | 34 ++++++++++----------- 1 file changed, 16 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/f793c2b3/lib/cpp/src/thrift/server/TConnectedClient.cpp ---------------------------------------------------------------------- diff --git a/lib/cpp/src/thrift/server/TConnectedClient.cpp b/lib/cpp/src/thrift/server/TConnectedClient.cpp index c248e63..9583284 100644 --- a/lib/cpp/src/thrift/server/TConnectedClient.cpp +++ b/lib/cpp/src/thrift/server/TConnectedClient.cpp @@ -64,24 +64,22 @@ void TConnectedClient::run() { } } catch (const TTransportException& ttx) { switch (ttx.getType()) { - case TTransportException::TIMED_OUT: - // Receive timeout - continue processing. - continue; - - case TTransportException::END_OF_FILE: - case TTransportException::INTERRUPTED: - // Client disconnected or was interrupted. No logging needed. Done. - done = true; - break; - - default: { - // All other transport exceptions are logged. - // State of connection is unknown. Done. - string errStr = string("TConnectedClient died: ") + ttx.what(); - GlobalOutput(errStr.c_str()); - done = true; - break; - } + case TTransportException::END_OF_FILE: + case TTransportException::INTERRUPTED: + case TTransportException::TIMED_OUT: + // Client disconnected or was interrupted or did not respond within the receive timeout. + // No logging needed. Done. + done = true; + break; + + default: { + // All other transport exceptions are logged. + // State of connection is unknown. Done. + string errStr = string("TConnectedClient died: ") + ttx.what(); + GlobalOutput(errStr.c_str()); + done = true; + break; + } } } catch (const TException& tex) { string errStr = string("TConnectedClient processing exception: ") + tex.what();