|
|
@ -117,6 +117,19 @@ namespace tunnel
|
|
|
|
auto it1 = m_OutboundTunnels.begin ();
|
|
|
|
auto it1 = m_OutboundTunnels.begin ();
|
|
|
|
auto it2 = m_InboundTunnels.begin ();
|
|
|
|
auto it2 = m_InboundTunnels.begin ();
|
|
|
|
while (it1 != m_OutboundTunnels.end () && it2 != m_InboundTunnels.end ())
|
|
|
|
while (it1 != m_OutboundTunnels.end () && it2 != m_InboundTunnels.end ())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
bool failed = false;
|
|
|
|
|
|
|
|
if ((*it1)->IsFailed ())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
failed = true;
|
|
|
|
|
|
|
|
it1++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ((*it2)->IsFailed ())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
failed = true;
|
|
|
|
|
|
|
|
it2++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!failed)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
uint32_t msgID = rnd.GenerateWord32 ();
|
|
|
|
uint32_t msgID = rnd.GenerateWord32 ();
|
|
|
|
m_Tests[msgID] = std::make_pair (*it1, *it2);
|
|
|
|
m_Tests[msgID] = std::make_pair (*it1, *it2);
|
|
|
@ -125,6 +138,7 @@ namespace tunnel
|
|
|
|
it1++; it2++;
|
|
|
|
it1++; it2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TunnelPool::ProcessDeliveryStatus (I2NPMessage * msg)
|
|
|
|
void TunnelPool::ProcessDeliveryStatus (I2NPMessage * msg)
|
|
|
|
{
|
|
|
|
{
|
|
|
|