diff options
author | Anthony Neal <aneal@zeroc.com> | 2001-12-19 16:48:31 +0000 |
---|---|---|
committer | Anthony Neal <aneal@zeroc.com> | 2001-12-19 16:48:31 +0000 |
commit | 73e15974110b3538960ecd4613187d79bd32c47a (patch) | |
tree | 56a62cdb2752e295d4f46810dd2d88623e38e96d /cpp/src/Ice/SslTransceiver.cpp | |
parent | Fix for ActivePython bug under WIN32. (diff) | |
download | ice-73e15974110b3538960ecd4613187d79bd32c47a.tar.bz2 ice-73e15974110b3538960ecd4613187d79bd32c47a.tar.xz ice-73e15974110b3538960ecd4613187d79bd32c47a.zip |
This is the 'fix' for the IceStorm related bug having to do with oneways.
It requires that Marc make it legal for read() to return 0 bytes.
Diffstat (limited to 'cpp/src/Ice/SslTransceiver.cpp')
-rw-r--r-- | cpp/src/Ice/SslTransceiver.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/cpp/src/Ice/SslTransceiver.cpp b/cpp/src/Ice/SslTransceiver.cpp index 31d9e854612..cac54001969 100644 --- a/cpp/src/Ice/SslTransceiver.cpp +++ b/cpp/src/Ice/SslTransceiver.cpp @@ -42,8 +42,8 @@ IceInternal::SslTransceiver::close() } SOCKET fd = _fd; - cleanUpSSL(); _fd = INVALID_SOCKET; + _sslConnection->shutdown(); ::shutdown(fd, SHUT_RDWR); // helps to unblock threads in recv() closeSocket(fd); @@ -62,6 +62,7 @@ IceInternal::SslTransceiver::shutdown() _logger->trace(_traceLevels->networkCat, s.str()); } + _sslConnection->shutdown(); ::shutdown(_fd, SHUT_WR); // Shutdown socket for writing ICE_METHOD_RET("SslTransceiver::shutdown()"); @@ -82,9 +83,13 @@ IceInternal::SslTransceiver::read(Buffer& buf, int timeout) if (!_sslConnection->read(buf, timeout)) { - ConnectionLostException clEx(__FILE__, __LINE__); - clEx.error = 0; - throw clEx; + ICE_WARNING("Connection::read() returning no bytes read."); + + // TODO: Perhaps this should be a NoApplicationDataException ??? + // ICE_WARNING("Throwing ConnectionLostException."); + // ConnectionLostException clEx(__FILE__, __LINE__); + // clEx.error = 0; + // throw clEx; } ICE_METHOD_RET("SslTransceiver::read()"); @@ -113,15 +118,8 @@ IceInternal::SslTransceiver::~SslTransceiver() { assert(_fd == INVALID_SOCKET); - cleanUpSSL(); -} - -void -IceInternal::SslTransceiver::cleanUpSSL() -{ if (_sslConnection != 0) { - _sslConnection->shutdown(); delete _sslConnection; _sslConnection = 0; } |