|
|
|
@ -347,10 +347,16 @@ namespace tunnel
@@ -347,10 +347,16 @@ namespace tunnel
|
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
I2NPMessage * msg = m_Queue.GetNextWithTimeout (1000); // 1 sec
|
|
|
|
|
uint32_t prevTunnelID = 0; |
|
|
|
|
TunnelBase * prevTunnel = nullptr; |
|
|
|
|
while (msg) |
|
|
|
|
{ |
|
|
|
|
uint32_t tunnelID = bufbe32toh (msg->GetPayload ()); |
|
|
|
|
TunnelBase * tunnel = GetInboundTunnel (tunnelID); |
|
|
|
|
TunnelBase * tunnel = nullptr; |
|
|
|
|
if (tunnelID == prevTunnelID) |
|
|
|
|
tunnel = prevTunnel; |
|
|
|
|
if (!tunnel) |
|
|
|
|
tunnel = GetInboundTunnel (tunnelID); |
|
|
|
|
if (!tunnel) |
|
|
|
|
tunnel = GetTransitTunnel (tunnelID); |
|
|
|
|
if (tunnel) |
|
|
|
@ -362,6 +368,11 @@ namespace tunnel
@@ -362,6 +368,11 @@ namespace tunnel
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
msg = m_Queue.Get (); |
|
|
|
|
if (msg) |
|
|
|
|
{ |
|
|
|
|
prevTunnelID = tunnelID; |
|
|
|
|
prevTunnel = tunnel; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint64_t ts = i2p::util::GetSecondsSinceEpoch (); |
|
|
|
|