|
|
|
@ -323,20 +323,7 @@ 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 (!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);
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (msg.deliveryType)
|
|
|
|
|
{
|
|
|
|
|
case eDeliveryTypeLocal:
|
|
|
|
|