summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/TcpTransceiver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/TcpTransceiver.cpp')
-rw-r--r--cpp/src/Ice/TcpTransceiver.cpp19
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);