From ec624c89b20a93163af2d0c61b229ceb3fcd5a45 Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 24 Sep 2014 17:51:21 -0400 Subject: [PATCH] delete all streams upon deletion of a local destination --- HTTPServer.cpp | 1 + SAM.cpp | 4 ++-- Streaming.cpp | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/HTTPServer.cpp b/HTTPServer.cpp index 4644f10d..ef76cf6e 100644 --- a/HTTPServer.cpp +++ b/HTTPServer.cpp @@ -505,6 +505,7 @@ namespace util { m_Stream->Close (); DeleteStream (m_Stream); + m_Stream = nullptr; } m_Socket->close (); delete this; diff --git a/SAM.cpp b/SAM.cpp index 0a81e305..ce42753b 100644 --- a/SAM.cpp +++ b/SAM.cpp @@ -18,7 +18,7 @@ namespace stream if (m_Stream) { m_Stream->Close (); - delete m_Stream; + DeleteStream (m_Stream); } } @@ -27,7 +27,7 @@ namespace stream if (m_Stream) { m_Stream->Close (); - delete m_Stream; + DeleteStream (m_Stream); m_Stream = nullptr; } delete this; diff --git a/Streaming.cpp b/Streaming.cpp index 166d5535..9f65d48e 100644 --- a/Streaming.cpp +++ b/Streaming.cpp @@ -38,6 +38,7 @@ namespace stream Stream::~Stream () { + Close (); m_ReceiveTimer.cancel (); m_ResendTimer.cancel (); while (!m_ReceiveQueue.empty ()) @@ -561,7 +562,8 @@ namespace stream StreamingDestination::~StreamingDestination () { - // TODO: delete streams + for (auto it: m_Streams) + delete it.second; if (m_Pool) i2p::tunnel::tunnels.DeleteTunnelPool (m_Pool); delete m_LeaseSet;