From c79cc493bf60398e40892a1a62835285af3bcbab Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Tue, 29 Mar 2016 17:28:47 +0200 Subject: Fixed ICE-7050: fixed WSS issue where server could stop reading requests --- cpp/src/IceSSL/OpenSSLTransceiverI.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'cpp/src/IceSSL/OpenSSLTransceiverI.cpp') diff --git a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp index 7503cc8c9a8..d66c5eb2781 100644 --- a/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +++ b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp @@ -440,7 +440,7 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf) } IceInternal::SocketOperation -IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) +IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool& hasMoreData) { if(!_stream->isConnected()) { @@ -548,6 +548,11 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) } } + // + // Check if there's still buffered data to read. In this case, set hasMoreData to true. + // + hasMoreData = SSL_pending(_ssl) > 0; + return IceInternal::SocketOperationNone; } -- cgit v1.2.3