publish 0-hops leaseset

This commit is contained in:
orignal 2016-11-16 10:59:11 -05:00
parent f6721a2ced
commit e0e50faa47

View File

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