Browse Source

operation_aborted error code for stream

pull/102/head
orignal 10 years ago
parent
commit
9a617297f2
  1. 7
      SAM.cpp
  2. 9
      Streaming.h

7
SAM.cpp

@ -251,7 +251,7 @@ namespace stream @@ -251,7 +251,7 @@ namespace stream
Connect (*leaseSet, session);
else
{
i2p::data::netdb.Subscribe (dest.GetIdentHash (), session->localDestination->GetTunnelPool ());
i2p::data::netdb.RequestDestination (dest.GetIdentHash (), true, session->localDestination->GetTunnelPool ());
m_Timer.expires_from_now (boost::posix_time::seconds(SAM_CONNECT_TIMEOUT));
m_Timer.async_wait (boost::bind (&SAMSocket::HandleStreamDestinationRequestTimer,
this, boost::asio::placeholders::error, dest.GetIdentHash (), session));
@ -366,7 +366,7 @@ namespace stream @@ -366,7 +366,7 @@ namespace stream
SendNamingLookupReply (leaseSet);
else
{
i2p::data::netdb.Subscribe (ident, m_Session->localDestination->GetTunnelPool ());
i2p::data::netdb.RequestDestination (ident, true, m_Session->localDestination->GetTunnelPool ());
m_Timer.expires_from_now (boost::posix_time::seconds(SAM_NAMING_LOOKUP_TIMEOUT));
m_Timer.async_wait (boost::bind (&SAMSocket::HandleNamingLookupDestinationRequestTimer,
this, boost::asio::placeholders::error, ident));
@ -447,7 +447,8 @@ namespace stream @@ -447,7 +447,8 @@ namespace stream
if (ecode)
{
LogPrint ("SAM stream read error: ", ecode.message ());
Terminate ();
if (ecode != boost::asio::error::operation_aborted)
Terminate ();
}
else
{

9
Streaming.h

@ -275,8 +275,15 @@ namespace stream @@ -275,8 +275,15 @@ namespace stream
{
size_t received = ConcatenatePackets (boost::asio::buffer_cast<uint8_t *>(buffer), boost::asio::buffer_size(buffer));
if (ecode == boost::asio::error::operation_aborted)
{
// timeout not expired
handler (boost::system::error_code (), received);
if (m_IsOpen)
// no error
handler (boost::system::error_code (), received);
else
// socket closed
handler (boost::asio::error::make_error_code (boost::asio::error::operation_aborted), 0);
}
else
// timeout expired
handler (boost::asio::error::make_error_code (boost::asio::error::timed_out), received);

Loading…
Cancel
Save