mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2026-08-14 09:21:07 +00:00
create error code based on stream status
This commit is contained in:
+18
-7
@@ -422,18 +422,29 @@ namespace stream
|
||||
else if (ecode == boost::asio::error::operation_aborted)
|
||||
{
|
||||
// timeout not expired
|
||||
if (m_Status == eStreamStatusClosed || m_Status == eStreamStatusTerminated)
|
||||
handler (boost::asio::error::make_error_code (boost::asio::error::eof), 0);
|
||||
else if (m_Status == eStreamStatusReset)
|
||||
handler (boost::asio::error::make_error_code (boost::asio::error::connection_reset), 0);
|
||||
else
|
||||
handler (boost::asio::error::make_error_code (boost::asio::error::operation_aborted), 0);
|
||||
boost::system::error_code retCode;
|
||||
switch (m_Status)
|
||||
{
|
||||
case eStreamStatusClosed:
|
||||
case eStreamStatusTerminated:
|
||||
retCode = boost::asio::error::make_error_code (boost::asio::error::eof);
|
||||
break;
|
||||
case eStreamStatusReset:
|
||||
retCode = boost::asio::error::make_error_code (boost::asio::error::connection_reset);
|
||||
break;
|
||||
case eStreamStatusNew:
|
||||
retCode = boost::asio::error::make_error_code (boost::asio::error::not_connected);
|
||||
break;
|
||||
default:
|
||||
retCode = boost::asio::error::make_error_code (boost::asio::error::operation_aborted);
|
||||
}
|
||||
handler (retCode, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// timeout expired
|
||||
if (remainingTimeout <= 0)
|
||||
handler (boost::asio::error::make_error_code (boost::asio::error::timed_out), received);
|
||||
handler (boost::asio::error::make_error_code (boost::asio::error::timed_out), 0);
|
||||
else
|
||||
{
|
||||
// intermediate interrupt
|
||||
|
||||
Reference in New Issue
Block a user