From f3aab569cab85ae0cd577aaf80ff8ff24e8178f5 Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 11 Mar 2015 21:43:30 -0400 Subject: [PATCH] don't return error if received data is available --- Streaming.h | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/Streaming.h b/Streaming.h index 2f73ad92..9cccd19d 100644 --- a/Streaming.h +++ b/Streaming.h @@ -248,26 +248,15 @@ namespace stream void Stream::HandleReceiveTimer (const boost::system::error_code& ecode, const Buffer& buffer, ReceiveHandler handler) { size_t received = ConcatenatePackets (boost::asio::buffer_cast(buffer), boost::asio::buffer_size(buffer)); - if (ecode == boost::asio::error::operation_aborted) + if (received > 0) + handler (boost::system::error_code (), received); + else if (ecode == boost::asio::error::operation_aborted) { // timeout not expired - if (m_Status == eStreamStatusOpen) - // no error - handler (boost::system::error_code (), received); + if (m_Status == eStreamStatusReset) + handler (boost::asio::error::make_error_code (boost::asio::error::connection_reset), 0); else - { - // stream closed - if (m_Status == eStreamStatusReset) - { - // stream closed by peer - handler (received > 0 ? boost::system::error_code () : // we still have some data - boost::asio::error::make_error_code (boost::asio::error::connection_reset), // no more data - received); - - } - else // stream closed by us - handler (boost::asio::error::make_error_code (boost::asio::error::operation_aborted), received); - } + handler (boost::asio::error::make_error_code (boost::asio::error::operation_aborted), 0); } else // timeout expired