don't look for tunnel again if tunnelID is the same as for previous message

pull/151/head
orignal 9 years ago
parent 89dead79c4
commit ec980edf56

@ -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);
uint32_t tunnelID = bufbe32toh (msg->GetPayload ());
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
}
msg = m_Queue.Get ();
if (msg)
{
prevTunnelID = tunnelID;
prevTunnel = tunnel;
}
}
uint64_t ts = i2p::util::GetSecondsSinceEpoch ();

Loading…
Cancel
Save