mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-22 00:59:08 +01:00
don't publish to non-responding floodfill twice
This commit is contained in:
parent
4d77dad9cc
commit
06621a2198
2 changed files with 6 additions and 2 deletions
|
@ -234,6 +234,7 @@ namespace client
|
||||||
if (msgID == m_PublishReplyToken)
|
if (msgID == m_PublishReplyToken)
|
||||||
{
|
{
|
||||||
LogPrint (eLogDebug, "Publishing confirmed");
|
LogPrint (eLogDebug, "Publishing confirmed");
|
||||||
|
m_ExcludedFloodfills.clear ();
|
||||||
m_PublishReplyToken = 0;
|
m_PublishReplyToken = 0;
|
||||||
i2p::DeleteI2NPMessage (msg);
|
i2p::DeleteI2NPMessage (msg);
|
||||||
}
|
}
|
||||||
|
@ -268,12 +269,14 @@ namespace client
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
std::set<i2p::data::IdentHash> excluded;
|
std::set<i2p::data::IdentHash> excluded;
|
||||||
auto floodfill = i2p::data::netdb.GetClosestFloodfill (m_LeaseSet->GetIdentHash (), excluded);
|
auto floodfill = i2p::data::netdb.GetClosestFloodfill (m_LeaseSet->GetIdentHash (), m_ExcludedFloodfills);
|
||||||
if (!floodfill)
|
if (!floodfill)
|
||||||
{
|
{
|
||||||
LogPrint ("Can't publish LeaseSet. No floodfills found");
|
LogPrint ("Can't publish LeaseSet. No more floodfills found");
|
||||||
|
m_ExcludedFloodfills.clear ();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
m_ExcludedFloodfills.insert (floodfill->GetIdentHash ());
|
||||||
LogPrint (eLogDebug, "Publish LeaseSet of ", GetIdentHash ().ToBase32 ());
|
LogPrint (eLogDebug, "Publish LeaseSet of ", GetIdentHash ().ToBase32 ());
|
||||||
m_PublishReplyToken = i2p::context.GetRandomNumberGenerator ().GenerateWord32 ();
|
m_PublishReplyToken = i2p::context.GetRandomNumberGenerator ().GenerateWord32 ();
|
||||||
auto msg = WrapMessage (*floodfill, i2p::CreateDatabaseStoreMsg (m_LeaseSet, m_PublishReplyToken));
|
auto msg = WrapMessage (*floodfill, i2p::CreateDatabaseStoreMsg (m_LeaseSet, m_PublishReplyToken));
|
||||||
|
|
|
@ -95,6 +95,7 @@ namespace client
|
||||||
i2p::data::LeaseSet * m_LeaseSet;
|
i2p::data::LeaseSet * m_LeaseSet;
|
||||||
bool m_IsPublic;
|
bool m_IsPublic;
|
||||||
uint32_t m_PublishReplyToken;
|
uint32_t m_PublishReplyToken;
|
||||||
|
std::set<i2p::data::IdentHash> m_ExcludedFloodfills; // for publishing
|
||||||
|
|
||||||
i2p::stream::StreamingDestination * m_StreamingDestination;
|
i2p::stream::StreamingDestination * m_StreamingDestination;
|
||||||
i2p::datagram::DatagramDestination * m_DatagramDestination;
|
i2p::datagram::DatagramDestination * m_DatagramDestination;
|
||||||
|
|
Loading…
Add table
Reference in a new issue