mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-22 00:59:08 +01:00
cleanup stream upon termination
This commit is contained in:
parent
da50d92d1e
commit
29944f6bf2
2 changed files with 23 additions and 15 deletions
|
@ -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,9 +51,29 @@ 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)
|
||||
{
|
||||
m_NumReceivedBytes += packet->GetLength ();
|
||||
|
|
|
@ -158,6 +158,8 @@ namespace stream
|
|||
|
||||
private:
|
||||
|
||||
void CleanUp ();
|
||||
|
||||
void SendBuffer ();
|
||||
void SendQuickAck ();
|
||||
void SendClose ();
|
||||
|
|
Loading…
Add table
Reference in a new issue