Thrift: C++ peek() method and TException not Exception
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664876 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/cpp/src/server/TSimpleServer.cpp b/lib/cpp/src/server/TSimpleServer.cpp
index 3eb035e..b453ce6 100644
--- a/lib/cpp/src/server/TSimpleServer.cpp
+++ b/lib/cpp/src/server/TSimpleServer.cpp
@@ -21,7 +21,7 @@
// Start the server listening
serverTransport_->listen();
} catch (TTransportException& ttx) {
- cerr << "TSimpleServer::run() listen(): " << ttx.getMessage() << endl;
+ cerr << "TSimpleServer::run() listen(): " << ttx.what() << endl;
return;
}
@@ -32,16 +32,21 @@
iot = transportFactory_->getIOTransports(client);
iop = protocolFactory_->getIOProtocols(iot.first, iot.second);
try {
- while (processor_->process(iop.first, iop.second)) {}
+ while (processor_->process(iop.first, iop.second)) {
+ // Peek ahead, is the remote side closed?
+ if (!iot.first->peek()) {
+ break;
+ }
+ }
} catch (TTransportException& ttx) {
- cerr << "TSimpleServer client died: " << ttx.getMessage() << endl;
+ cerr << "TSimpleServer client died: " << ttx.what() << endl;
}
iot.first->close();
iot.second->close();
client->close();
}
} catch (TTransportException& ttx) {
- cerr << "TServerTransport died on accept: " << ttx.getMessage() << endl;
+ cerr << "TServerTransport died on accept: " << ttx.what() << endl;
}
// TODO(mcslee): Could this be a timeout case? Or always the real thing?