mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-10 09:21:08 +00:00
terminate sessions if clock was adjusted backwards too much
This commit is contained in:
parent
aac9a8d18f
commit
993900aa77
@ -175,7 +175,8 @@ namespace data
|
|||||||
{
|
{
|
||||||
if (!m_LastDeclineTime) return false;
|
if (!m_LastDeclineTime) return false;
|
||||||
auto ts = i2p::util::GetSecondsSinceEpoch ();
|
auto ts = i2p::util::GetSecondsSinceEpoch ();
|
||||||
if (ts > m_LastDeclineTime + PEER_PROFILE_DECLINED_RECENTLY_INTERVAL)
|
if (ts > m_LastDeclineTime + PEER_PROFILE_DECLINED_RECENTLY_INTERVAL ||
|
||||||
|
ts + PEER_PROFILE_DECLINED_RECENTLY_INTERVAL < m_LastDeclineTime)
|
||||||
m_LastDeclineTime = 0;
|
m_LastDeclineTime = 0;
|
||||||
return (bool)m_LastDeclineTime;
|
return (bool)m_LastDeclineTime;
|
||||||
}
|
}
|
||||||
@ -200,7 +201,8 @@ namespace data
|
|||||||
{
|
{
|
||||||
if (!m_LastUnreachableTime) return false;
|
if (!m_LastUnreachableTime) return false;
|
||||||
auto ts = i2p::util::GetSecondsSinceEpoch ();
|
auto ts = i2p::util::GetSecondsSinceEpoch ();
|
||||||
if (ts > m_LastUnreachableTime + PEER_PROFILE_UNREACHABLE_INTERVAL)
|
if (ts > m_LastUnreachableTime + PEER_PROFILE_UNREACHABLE_INTERVAL ||
|
||||||
|
ts + PEER_PROFILE_UNREACHABLE_INTERVAL < m_LastUnreachableTime)
|
||||||
m_LastUnreachableTime = 0;
|
m_LastUnreachableTime = 0;
|
||||||
return (bool)m_LastUnreachableTime;
|
return (bool)m_LastUnreachableTime;
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,10 @@ namespace transport
|
|||||||
int GetTerminationTimeout () const { return m_TerminationTimeout; };
|
int GetTerminationTimeout () const { return m_TerminationTimeout; };
|
||||||
void SetTerminationTimeout (int terminationTimeout) { m_TerminationTimeout = terminationTimeout; };
|
void SetTerminationTimeout (int terminationTimeout) { m_TerminationTimeout = terminationTimeout; };
|
||||||
bool IsTerminationTimeoutExpired (uint64_t ts) const
|
bool IsTerminationTimeoutExpired (uint64_t ts) const
|
||||||
{ return ts >= m_LastActivityTimestamp + GetTerminationTimeout (); };
|
{
|
||||||
|
return ts >= m_LastActivityTimestamp + GetTerminationTimeout () ||
|
||||||
|
ts + GetTerminationTimeout () < m_LastActivityTimestamp;
|
||||||
|
};
|
||||||
|
|
||||||
uint32_t GetCreationTime () const { return m_CreationTime; };
|
uint32_t GetCreationTime () const { return m_CreationTime; };
|
||||||
void SetCreationTime (uint32_t ts) { m_CreationTime = ts; }; // for introducers
|
void SetCreationTime (uint32_t ts) { m_CreationTime = ts; }; // for introducers
|
||||||
|
Loading…
x
Reference in New Issue
Block a user