mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-02 02:44:15 +00:00
Merge pull request #1925 from wekoq/openssl
Do not save useless peer profiles
This commit is contained in:
commit
f2bc2598dc
@ -150,17 +150,19 @@ namespace data
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_NumTunnelsAgreed++;
|
m_NumTunnelsAgreed++;
|
||||||
m_LastDeclineTime = 0;
|
m_LastDeclineTime = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RouterProfile::TunnelNonReplied ()
|
void RouterProfile::TunnelNonReplied ()
|
||||||
{
|
{
|
||||||
m_NumTunnelsNonReplied++;
|
m_NumTunnelsNonReplied++;
|
||||||
UpdateTime ();
|
UpdateTime ();
|
||||||
if (m_NumTunnelsNonReplied > 2*m_NumTunnelsAgreed && m_NumTunnelsNonReplied > 3)
|
if (m_NumTunnelsNonReplied > 2*m_NumTunnelsAgreed && m_NumTunnelsNonReplied > 3)
|
||||||
|
{
|
||||||
m_LastDeclineTime = i2p::util::GetSecondsSinceEpoch ();
|
m_LastDeclineTime = i2p::util::GetSecondsSinceEpoch ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RouterProfile::Unreachable ()
|
void RouterProfile::Unreachable ()
|
||||||
@ -221,6 +223,15 @@ namespace data
|
|||||||
m_LastUnreachableTime = 0;
|
m_LastUnreachableTime = 0;
|
||||||
return (bool)m_LastUnreachableTime;
|
return (bool)m_LastUnreachableTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool RouterProfile::IsUseful() const {
|
||||||
|
return
|
||||||
|
m_NumTunnelsAgreed >= PEER_PROFILE_USEFUL_THRESHOLD ||
|
||||||
|
m_NumTunnelsDeclined >= PEER_PROFILE_USEFUL_THRESHOLD ||
|
||||||
|
m_NumTunnelsNonReplied >= PEER_PROFILE_USEFUL_THRESHOLD ||
|
||||||
|
m_HasConnected;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
std::shared_ptr<RouterProfile> GetRouterProfile (const IdentHash& identHash)
|
std::shared_ptr<RouterProfile> GetRouterProfile (const IdentHash& identHash)
|
||||||
{
|
{
|
||||||
@ -275,7 +286,7 @@ namespace data
|
|||||||
}
|
}
|
||||||
auto ts = GetTime ();
|
auto ts = GetTime ();
|
||||||
for (auto& it: tmp)
|
for (auto& it: tmp)
|
||||||
if (it.second->IsUpdated () && (ts - it.second->GetLastUpdateTime ()).total_seconds () < PEER_PROFILE_EXPIRATION_TIMEOUT*3600)
|
if (it.second->IsUseful() && it.second->IsUpdated () && (ts - it.second->GetLastUpdateTime ()).total_seconds () < PEER_PROFILE_EXPIRATION_TIMEOUT*3600)
|
||||||
it.second->Save (it.first);
|
it.second->Save (it.first);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ namespace data
|
|||||||
const int PEER_PROFILE_DECLINED_RECENTLY_INTERVAL = 150; // in seconds (2.5 minutes)
|
const int PEER_PROFILE_DECLINED_RECENTLY_INTERVAL = 150; // in seconds (2.5 minutes)
|
||||||
const int PEER_PROFILE_PERSIST_INTERVAL = 3300; // in seconds (55 minutes)
|
const int PEER_PROFILE_PERSIST_INTERVAL = 3300; // in seconds (55 minutes)
|
||||||
const int PEER_PROFILE_UNREACHABLE_INTERVAL = 2*3600; // on seconds (2 hours)
|
const int PEER_PROFILE_UNREACHABLE_INTERVAL = 2*3600; // on seconds (2 hours)
|
||||||
|
const int PEER_PROFILE_USEFUL_THRESHOLD = 3;
|
||||||
|
|
||||||
class RouterProfile
|
class RouterProfile
|
||||||
{
|
{
|
||||||
@ -60,6 +61,8 @@ namespace data
|
|||||||
boost::posix_time::ptime GetLastUpdateTime () const { return m_LastUpdateTime; };
|
boost::posix_time::ptime GetLastUpdateTime () const { return m_LastUpdateTime; };
|
||||||
bool IsUpdated () const { return m_IsUpdated; };
|
bool IsUpdated () const { return m_IsUpdated; };
|
||||||
|
|
||||||
|
bool IsUseful() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void UpdateTime ();
|
void UpdateTime ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user