mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-19 01:09:58 +00:00
Handle drop of own RouterInfo publishing message
This commit is contained in:
parent
2e9f2d4a3b
commit
ffdd5935e9
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2023, The PurpleI2P Project
|
* Copyright (c) 2013-2024, The PurpleI2P Project
|
||||||
*
|
*
|
||||||
* This file is part of Purple i2pd project and licensed under BSD3
|
* This file is part of Purple i2pd project and licensed under BSD3
|
||||||
*
|
*
|
||||||
@ -1378,10 +1378,19 @@ namespace i2p
|
|||||||
uint32_t replyToken;
|
uint32_t replyToken;
|
||||||
RAND_bytes ((uint8_t *)&replyToken, 4);
|
RAND_bytes ((uint8_t *)&replyToken, 4);
|
||||||
LogPrint (eLogInfo, "Router: Publishing our RouterInfo to ", i2p::data::GetIdentHashAbbreviation(floodfill->GetIdentHash ()), ". reply token=", replyToken);
|
LogPrint (eLogInfo, "Router: Publishing our RouterInfo to ", i2p::data::GetIdentHashAbbreviation(floodfill->GetIdentHash ()), ". reply token=", replyToken);
|
||||||
|
auto onDrop = [this]()
|
||||||
|
{
|
||||||
|
if (m_Service)
|
||||||
|
m_Service->GetService ().post ([this]() { HandlePublishResendTimer (boost::system::error_code ()); });
|
||||||
|
};
|
||||||
if (floodfill->IsReachableFrom (i2p::context.GetRouterInfo ()) || // are we able to connect?
|
if (floodfill->IsReachableFrom (i2p::context.GetRouterInfo ()) || // are we able to connect?
|
||||||
i2p::transport::transports.IsConnected (floodfill->GetIdentHash ())) // already connected ?
|
i2p::transport::transports.IsConnected (floodfill->GetIdentHash ())) // already connected ?
|
||||||
|
{
|
||||||
// send directly
|
// send directly
|
||||||
i2p::transport::transports.SendMessage (floodfill->GetIdentHash (), CreateDatabaseStoreMsg (i2p::context.GetSharedRouterInfo (), replyToken));
|
auto msg = CreateDatabaseStoreMsg (i2p::context.GetSharedRouterInfo (), replyToken);
|
||||||
|
msg->onDrop = onDrop;
|
||||||
|
i2p::transport::transports.SendMessage (floodfill->GetIdentHash (), msg);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// otherwise through exploratory
|
// otherwise through exploratory
|
||||||
@ -1392,6 +1401,7 @@ namespace i2p
|
|||||||
{
|
{
|
||||||
// encrypt for floodfill
|
// encrypt for floodfill
|
||||||
auto msg = CreateDatabaseStoreMsg (i2p::context.GetSharedRouterInfo (), replyToken, inbound);
|
auto msg = CreateDatabaseStoreMsg (i2p::context.GetSharedRouterInfo (), replyToken, inbound);
|
||||||
|
msg->onDrop = onDrop;
|
||||||
outbound->SendTunnelDataMsgTo (floodfill->GetIdentHash (), 0,
|
outbound->SendTunnelDataMsgTo (floodfill->GetIdentHash (), 0,
|
||||||
i2p::garlic::WrapECIESX25519MessageForRouter (msg, floodfill->GetIdentity ()->GetEncryptionPublicKey ()));
|
i2p::garlic::WrapECIESX25519MessageForRouter (msg, floodfill->GetIdentity ()->GetEncryptionPublicKey ()));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user