1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-01-22 08:14:15 +00:00

cleanup stream upon termination

This commit is contained in:
orignal 2017-01-22 21:22:12 -05:00
parent da50d92d1e
commit 29944f6bf2
2 changed files with 23 additions and 15 deletions

View File

@ -36,21 +36,7 @@ namespace stream
Stream::~Stream ()
{
while (!m_ReceiveQueue.empty ())
{
auto packet = m_ReceiveQueue.front ();
m_ReceiveQueue.pop ();
m_LocalDestination.DeletePacket (packet);
}
for (auto it: m_SentPackets)
m_LocalDestination.DeletePacket (it);
m_SentPackets.clear ();
for (auto it: m_SavedPackets)
m_LocalDestination.DeletePacket (it);
m_SavedPackets.clear ();
CleanUp ();
LogPrint (eLogDebug, "Streaming: Stream deleted");
}
@ -65,8 +51,28 @@ namespace stream
m_SendHandler = nullptr;
handler (boost::asio::error::make_error_code (boost::asio::error::operation_aborted));
}
CleanUp ();
m_LocalDestination.DeleteStream (shared_from_this ());
}
void Stream::CleanUp ()
{
m_SendBuffer.str ("");
while (!m_ReceiveQueue.empty ())
{
auto packet = m_ReceiveQueue.front ();
m_ReceiveQueue.pop ();
m_LocalDestination.DeletePacket (packet);
}
for (auto it: m_SentPackets)
m_LocalDestination.DeletePacket (it);
m_SentPackets.clear ();
for (auto it: m_SavedPackets)
m_LocalDestination.DeletePacket (it);
m_SavedPackets.clear ();
}
void Stream::HandleNextPacket (Packet * packet)
{

View File

@ -158,6 +158,8 @@ namespace stream
private:
void CleanUp ();
void SendBuffer ();
void SendQuickAck ();
void SendClose ();