mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-28 01:44:14 +00:00
don't return expired LeaseSet
This commit is contained in:
parent
c74db4b81c
commit
d8510ead43
@ -202,7 +202,12 @@ namespace client
|
|||||||
return remoteLS;
|
return remoteLS;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
LogPrint (eLogWarning, "Destination: remote LeaseSet expired");
|
LogPrint (eLogWarning, "Destination: remote LeaseSet expired");
|
||||||
|
std::lock_guard<std::mutex> lock(m_RemoteLeaseSetsMutex);
|
||||||
|
m_RemoteLeaseSets.erase (ident);
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -223,12 +228,16 @@ namespace client
|
|||||||
if (!m_Pool) return nullptr;
|
if (!m_Pool) return nullptr;
|
||||||
if (!m_LeaseSet)
|
if (!m_LeaseSet)
|
||||||
UpdateLeaseSet ();
|
UpdateLeaseSet ();
|
||||||
|
std::lock_guard<std::mutex> l(m_LeaseSetMutex);
|
||||||
return m_LeaseSet;
|
return m_LeaseSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LeaseSetDestination::SetLeaseSet (i2p::data::LocalLeaseSet * newLeaseSet)
|
void LeaseSetDestination::SetLeaseSet (i2p::data::LocalLeaseSet * newLeaseSet)
|
||||||
{
|
{
|
||||||
m_LeaseSet.reset (newLeaseSet);
|
{
|
||||||
|
std::lock_guard<std::mutex> l(m_LeaseSetMutex);
|
||||||
|
m_LeaseSet.reset (newLeaseSet);
|
||||||
|
}
|
||||||
i2p::garlic::GarlicDestination::SetLeaseSetUpdated ();
|
i2p::garlic::GarlicDestination::SetLeaseSetUpdated ();
|
||||||
if (m_IsPublic)
|
if (m_IsPublic)
|
||||||
{
|
{
|
||||||
@ -371,14 +380,14 @@ namespace client
|
|||||||
if (request->excluded.size () < MAX_NUM_FLOODFILLS_PER_REQUEST)
|
if (request->excluded.size () < MAX_NUM_FLOODFILLS_PER_REQUEST)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < num; i++)
|
for (int i = 0; i < num; i++)
|
||||||
|
{
|
||||||
|
i2p::data::IdentHash peerHash (buf + 33 + i*32);
|
||||||
|
if (!request->excluded.count (peerHash) && !i2p::data::netdb.FindRouter (peerHash))
|
||||||
{
|
{
|
||||||
i2p::data::IdentHash peerHash (buf + 33 + i*32);
|
LogPrint (eLogInfo, "Destination: Found new floodfill, request it"); // TODO: recheck this message
|
||||||
if (!request->excluded.count (peerHash) && !i2p::data::netdb.FindRouter (peerHash))
|
i2p::data::netdb.RequestDestination (peerHash);
|
||||||
{
|
}
|
||||||
LogPrint (eLogInfo, "Destination: Found new floodfill, request it"); // TODO: recheck this message
|
}
|
||||||
i2p::data::netdb.RequestDestination (peerHash);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
auto floodfill = i2p::data::netdb.GetClosestFloodfill (key, request->excluded);
|
auto floodfill = i2p::data::netdb.GetClosestFloodfill (key, request->excluded);
|
||||||
if (floodfill)
|
if (floodfill)
|
||||||
|
@ -131,6 +131,7 @@ namespace client
|
|||||||
std::map<i2p::data::IdentHash, std::shared_ptr<LeaseSetRequest> > m_LeaseSetRequests;
|
std::map<i2p::data::IdentHash, std::shared_ptr<LeaseSetRequest> > m_LeaseSetRequests;
|
||||||
|
|
||||||
std::shared_ptr<i2p::tunnel::TunnelPool> m_Pool;
|
std::shared_ptr<i2p::tunnel::TunnelPool> m_Pool;
|
||||||
|
std::mutex m_LeaseSetMutex;
|
||||||
std::shared_ptr<i2p::data::LocalLeaseSet> m_LeaseSet;
|
std::shared_ptr<i2p::data::LocalLeaseSet> m_LeaseSet;
|
||||||
bool m_IsPublic;
|
bool m_IsPublic;
|
||||||
uint32_t m_PublishReplyToken;
|
uint32_t m_PublishReplyToken;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user