don't reply to DatabaseStore messages extracted from transit

This commit is contained in:
orignal 2023-04-21 21:31:14 -04:00
parent 5769a41208
commit c34df2090c
2 changed files with 20 additions and 6 deletions

View file

@ -324,9 +324,17 @@ namespace tunnel
uint8_t typeID = msg.data->GetTypeID ();
LogPrint (eLogDebug, "TunnelMessage: Handle fragment of ", msg.data->GetLength (), " bytes, msg type ", (int)typeID);
// catch RI or reply with new list of routers
if ((IsRouterInfoMsg (msg.data) || typeID == eI2NPDatabaseSearchReply) &&
!m_IsInbound && msg.deliveryType != eDeliveryTypeLocal)
i2p::data::netdb.PostI2NPMsg (CopyI2NPMessage (msg.data));
if (!m_IsInbound && msg.deliveryType != eDeliveryTypeLocal)
{
if (typeID == eI2NPDatabaseSearchReply)
i2p::data::netdb.PostI2NPMsg (CopyI2NPMessage (msg.data));
else if (IsRouterInfoMsg (msg.data))
{
auto m = CopyI2NPMessage (msg.data);
memset (m->GetPayload () + DATABASE_STORE_REPLY_TOKEN_OFFSET, 0, 4); // no reply
i2p::data::netdb.PostI2NPMsg (m);
}
}
switch (msg.deliveryType)
{