|
|
@ -215,15 +215,6 @@ namespace tunnel |
|
|
|
void TunnelPool::CreateTunnels () |
|
|
|
void TunnelPool::CreateTunnels () |
|
|
|
{ |
|
|
|
{ |
|
|
|
int num = 0; |
|
|
|
int num = 0; |
|
|
|
{ |
|
|
|
|
|
|
|
std::unique_lock<std::mutex> l(m_InboundTunnelsMutex); |
|
|
|
|
|
|
|
for (const auto& it : m_InboundTunnels) |
|
|
|
|
|
|
|
if (it->IsEstablished ()) num++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (int i = num; i < m_NumInboundTunnels; i++) |
|
|
|
|
|
|
|
CreateInboundTunnel (); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
num = 0; |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
std::unique_lock<std::mutex> l(m_OutboundTunnelsMutex); |
|
|
|
std::unique_lock<std::mutex> l(m_OutboundTunnelsMutex); |
|
|
|
for (const auto& it : m_OutboundTunnels) |
|
|
|
for (const auto& it : m_OutboundTunnels) |
|
|
@ -231,6 +222,18 @@ namespace tunnel |
|
|
|
} |
|
|
|
} |
|
|
|
for (int i = num; i < m_NumOutboundTunnels; i++) |
|
|
|
for (int i = num; i < m_NumOutboundTunnels; i++) |
|
|
|
CreateOutboundTunnel (); |
|
|
|
CreateOutboundTunnel (); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
num = 0; |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
std::unique_lock<std::mutex> l(m_InboundTunnelsMutex); |
|
|
|
|
|
|
|
for (const auto& it : m_InboundTunnels) |
|
|
|
|
|
|
|
if (it->IsEstablished ()) num++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (int i = num; i < m_NumInboundTunnels; i++) |
|
|
|
|
|
|
|
CreateInboundTunnel (); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (num > 0 && m_NumInboundHops <= 0 && m_LocalDestination) // zero hops IB
|
|
|
|
|
|
|
|
m_LocalDestination->SetLeaseSetUpdated (); // update LeaseSet immediately
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void TunnelPool::TestTunnels () |
|
|
|
void TunnelPool::TestTunnels () |
|
|
|