diff --git a/libi2pd/NetDb.cpp b/libi2pd/NetDb.cpp index e6db32bd..0320afdd 100644 --- a/libi2pd/NetDb.cpp +++ b/libi2pd/NetDb.cpp @@ -991,15 +991,18 @@ namespace data auto dest = m_Requests.FindRequest (ident); if (dest) { - if (num > 0 || dest->GetNumExcludedPeers () < 3) // before 3-rd attempt might be just bad luck + if (!dest->IsExploratory () && (num > 0 || dest->GetNumExcludedPeers () < 3)) // before 3-rd attempt might be just bad luck // try to send next requests m_Requests.SendNextRequest (dest); else // no more requests for destination possible. delete it m_Requests.RequestComplete (ident, nullptr); } - else if(!m_FloodfillBootstrap) - LogPrint (eLogWarning, "NetDb: Requested destination for ", key, " not found"); + else if (!m_FloodfillBootstrap) + { + LogPrint (eLogWarning, "NetDb: Unsolicited database search reply for ", key); + return; + } // try responses for (int i = 0; i < num; i++) diff --git a/libi2pd/Tunnel.cpp b/libi2pd/Tunnel.cpp index 57feff45..55c4d38c 100644 --- a/libi2pd/Tunnel.cpp +++ b/libi2pd/Tunnel.cpp @@ -592,17 +592,6 @@ namespace tunnel auto typeID = msg->GetTypeID (); LogPrint (eLogDebug, "Tunnel: Gateway of ", (int) len, " bytes for tunnel ", tunnel->GetTunnelID (), ", msg type ", (int)typeID); - if (typeID == eI2NPDatabaseSearchReply) - // DatabaseSearchReply with new routers - i2p::data::netdb.PostI2NPMsg (CopyI2NPMessage (msg)); - else if (IsRouterInfoMsg (msg)) - { - // transit DatabaseStore might contain new/updated RI - auto m = CopyI2NPMessage (msg); - if (bufbe32toh (m->GetPayload () + DATABASE_STORE_REPLY_TOKEN_OFFSET)) - memset (m->GetPayload () + DATABASE_STORE_REPLY_TOKEN_OFFSET, 0xFF, 4); // fake replyToken meaning no reply - i2p::data::netdb.PostI2NPMsg (m); - } tunnel->SendTunnelDataMsg (msg); }