diff options
Diffstat (limited to 'cpp/src/IceSSL/OpenSSLTransceiverI.cpp')
-rw-r--r-- | cpp/src/IceSSL/OpenSSLTransceiverI.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp index 99248a74a2d..2178c292ea0 100644 --- a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +++ b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp @@ -466,6 +466,8 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf) return IceInternal::SocketOperationNone; } + _stream->ready(IceInternal::SocketOperationRead, false); + // // It's impossible for packetSize to be more than an Int. // @@ -555,6 +557,11 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf) } } + // + // Check if there's still buffered data to read, set the read ready status. + // + _stream->ready(IceInternal::SocketOperationRead, SSL_pending(_ssl) > 0); + return IceInternal::SocketOperationNone; } |