diff options
author | Jose <jose@zeroc.com> | 2016-05-09 23:03:21 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-05-09 23:03:21 +0200 |
commit | 3e685a12bfd92a4ffd86c808ba0f34df907de5c8 (patch) | |
tree | 2ef8fb8e028d4f14d1516a98f2a18dbadb46a5d7 /cpp/src/Ice/StreamSocket.cpp | |
parent | Update to latest gradle builder (diff) | |
parent | AIX port (diff) | |
download | ice-3e685a12bfd92a4ffd86c808ba0f34df907de5c8.tar.bz2 ice-3e685a12bfd92a4ffd86c808ba0f34df907de5c8.tar.xz ice-3e685a12bfd92a4ffd86c808ba0f34df907de5c8.zip |
Merge remote-tracking branch 'origin/3.6'
Diffstat (limited to 'cpp/src/Ice/StreamSocket.cpp')
-rw-r--r-- | cpp/src/Ice/StreamSocket.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/cpp/src/Ice/StreamSocket.cpp b/cpp/src/Ice/StreamSocket.cpp index e11d5709aa4..fa3761f5fa0 100644 --- a/cpp/src/Ice/StreamSocket.cpp +++ b/cpp/src/Ice/StreamSocket.cpp @@ -32,10 +32,18 @@ StreamSocket::StreamSocket(const ProtocolInstancePtr& instance, #ifndef ICE_USE_IOCP if(doConnect(_fd, _proxy ? _proxy->getAddress() : _addr, sourceAddr)) { - _state = StateConnected; + _state = _proxy ? StateProxyWrite : StateConnected; } #endif - _desc = fdToString(_fd, _proxy, _addr); + try + { + _desc = fdToString(_fd, _proxy, _addr); + } + catch(const Ice::Exception&) + { + closeSocketNoThrow(_fd); + throw; + } } StreamSocket::StreamSocket(const ProtocolInstancePtr& instance, SOCKET fd) : @@ -48,7 +56,15 @@ StreamSocket::StreamSocket(const ProtocolInstancePtr& instance, SOCKET fd) : #endif { init(); - _desc = fdToString(fd); + try + { + _desc = fdToString(fd); + } + catch(const Ice::Exception&) + { + closeSocketNoThrow(fd); + throw; + } } StreamSocket::~StreamSocket() |