Browse Source

drop unsolicited database serach replies

pull/1941/merge
orignal 8 months ago
parent
commit
a1eac6f28e
  1. 9
      libi2pd/NetDb.cpp
  2. 11
      libi2pd/Tunnel.cpp

9
libi2pd/NetDb.cpp

@ -991,15 +991,18 @@ namespace data @@ -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++)

11
libi2pd/Tunnel.cpp

@ -592,17 +592,6 @@ namespace tunnel @@ -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);
}

Loading…
Cancel
Save