From 4b507cda96c71bc768d0198d91e0d95d8166fc9e Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 29 Jul 2026 06:50:21 -0400 Subject: [PATCH] don't send eof with reveived data --- libi2pd_client/BoostStream.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libi2pd_client/BoostStream.h b/libi2pd_client/BoostStream.h index dbffba17..b7aec1b3 100644 --- a/libi2pd_client/BoostStream.h +++ b/libi2pd_client/BoostStream.h @@ -41,12 +41,12 @@ namespace client received += len; if (received < it->size ()) break; } - if (m_Stream->GetStatus () == i2p::stream::eStreamStatusClosed || + if (received > 0) // we have some data + handler (boost::system::error_code (), received); + else if (m_Stream->GetStatus () == i2p::stream::eStreamStatusClosed || m_Stream->GetStatus () == i2p::stream::eStreamStatusTerminated) // read stream after close, return eof with outstanding data - handler (boost::asio::error::make_error_code (boost::asio::error::eof), received); - else if (received > 0) // we have some data - handler (boost::system::error_code (), received); + handler (boost::asio::error::make_error_code (boost::asio::error::eof), 0); else if (bufs.size () > 0) // wait for incoming data m_Stream->AsyncReceive (*boost::asio::buffer_sequence_begin (bufs), std::move (handler), i2p::stream::MAX_RECEIVE_TIMEOUT); else