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