From d938332db2f730ae814898643dd7185ab9d12643 Mon Sep 17 00:00:00 2001 From: orignal Date: Tue, 18 Mar 2014 08:15:43 -0400 Subject: [PATCH] exclude failed tunnel from pool --- TunnelPool.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/TunnelPool.cpp b/TunnelPool.cpp index f16b389d..d1da6e6d 100644 --- a/TunnelPool.cpp +++ b/TunnelPool.cpp @@ -37,7 +37,11 @@ namespace tunnel void TunnelPool::TunnelExpired (InboundTunnel * expiredTunnel) { - m_InboundTunnels.erase (expiredTunnel); + if (expiredTunnel) + { + expiredTunnel->SetTunnelPool (nullptr); + m_InboundTunnels.erase (expiredTunnel); + } if (m_LocalDestination) m_LocalDestination->UpdateLeaseSet (); } @@ -49,7 +53,11 @@ namespace tunnel void TunnelPool::TunnelExpired (OutboundTunnel * expiredTunnel) { - m_OutboundTunnels.erase (expiredTunnel); + if (expiredTunnel) + { + expiredTunnel->SetTunnelPool (nullptr); + m_OutboundTunnels.erase (expiredTunnel); + } if (expiredTunnel == m_LastOutboundTunnel) m_LastOutboundTunnel = nullptr; }