Skip to content
/ i2pd Public
forked from PurpleI2P/i2pd

Commit

Permalink
delete closed I2P tunnel connection
Browse files Browse the repository at this point in the history
  • Loading branch information
orignal committed Oct 8, 2014
1 parent 3344e8f commit 82814dc
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions I2PTunnel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,21 @@ namespace stream

I2PTunnelConnection::~I2PTunnelConnection ()
{
if (m_Stream)
{
m_Stream->Close ();
DeleteStream (m_Stream);
m_Stream = nullptr;
}
delete m_Socket;
}

void I2PTunnelConnection::Terminate ()
{
if (m_Stream)
{
m_Stream->Close ();
DeleteStream (m_Stream);
m_Stream = nullptr;
}
m_Socket->close ();
if (m_Owner)
m_Owner->RemoveConnection (this);
// TODO: delete
delete this;
}

void I2PTunnelConnection::Receive ()
Expand All @@ -59,8 +59,8 @@ namespace stream
if (ecode)
{
LogPrint ("I2PTunnel read error: ", ecode.message ());
m_Stream->Close ();
Terminate ();
if (ecode != boost::asio::error::operation_aborted)
Terminate ();
}
else
{
Expand All @@ -75,8 +75,8 @@ namespace stream
if (ecode)
{
LogPrint ("I2PTunnel write error: ", ecode.message ());
m_Stream->Close ();
Terminate ();
if (ecode != boost::asio::error::operation_aborted)
Terminate ();
}
else
StreamReceive ();
Expand All @@ -96,7 +96,8 @@ namespace stream
if (ecode)
{
LogPrint ("I2PTunnel stream read error: ", ecode.message ());
Terminate ();
if (ecode != boost::asio::error::operation_aborted)
Terminate ();
}
else
{
Expand All @@ -110,9 +111,12 @@ namespace stream
if (ecode)
{
LogPrint ("I2PTunnel connect error: ", ecode.message ());
if (m_Stream) m_Stream->Close ();
DeleteStream (m_Stream);
m_Stream = nullptr;
if (ecode != boost::asio::error::operation_aborted)
{
if (m_Stream) m_Stream->Close ();
DeleteStream (m_Stream);
m_Stream = nullptr;
}
}
else
{
Expand Down

0 comments on commit 82814dc

Please sign in to comment.