From a096a3931d39d34f94180d002facfbcdff5802d2 Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 27 Aug 2014 10:13:17 -0400 Subject: [PATCH] send reply to DatabaseLookup through exploratory pool or directly only --- NetDb.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/NetDb.cpp b/NetDb.cpp index 3b86fe98..a88e5fb0 100644 --- a/NetDb.cpp +++ b/NetDb.cpp @@ -656,10 +656,15 @@ namespace data replyMsg = garlic.WrapSingleMessage (replyMsg, nullptr); } } - i2p::tunnel::tunnels.GetNextOutboundTunnel ()->SendTunnelDataMsg (buf+32, replyTunnelID, replyMsg); + auto exploratoryPool = i2p::tunnel::tunnels.GetExploratoryPool (); + auto outbound = exploratoryPool ? exploratoryPool->GetNextOutboundTunnel () : nullptr; + if (outbound) + outbound->SendTunnelDataMsg (buf+32, replyTunnelID, replyMsg); + else + i2p::transports.SendMessage (buf+32, i2p::CreateTunnelGatewayMsg (replyTunnelID, replyMsg)); } else - i2p::transports.SendMessage (buf, replyMsg); + i2p::transports.SendMessage (buf+32, replyMsg); } i2p::DeleteI2NPMessage (msg); }