diff options
Diffstat (limited to 'cpp/src/Ice/TcpTransceiver.cpp')
-rw-r--r-- | cpp/src/Ice/TcpTransceiver.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/cpp/src/Ice/TcpTransceiver.cpp b/cpp/src/Ice/TcpTransceiver.cpp index 09f54e846fa..e7f0ee4acab 100644 --- a/cpp/src/Ice/TcpTransceiver.cpp +++ b/cpp/src/Ice/TcpTransceiver.cpp @@ -372,9 +372,22 @@ IceInternal::TcpTransceiver::initialize(int timeout) } else if(_state <= StateConnectPending) { - doFinishConnect(_fd, timeout); - _state = StateConnected; - _desc = fdToString(_fd); + try + { + doFinishConnect(_fd, timeout); + _state = StateConnected; + _desc = fdToString(_fd); + } + catch(const Ice::LocalException& ex) + { + if(_traceLevels->network >= 2) + { + Trace out(_logger, _traceLevels->networkCat); + out << "failed to establish tcp connection\n" << _desc << "\n" << ex; + } + throw; + } + if(_traceLevels->network >= 1) { Trace out(_logger, _traceLevels->networkCat); |