Browse Source

remove tag after tagset expiration

pull/1622/head
orignal 4 years ago
parent
commit
aedcd1bcc0
  1. 2
      libi2pd/ECIESX25519AEADRatchetSession.cpp
  2. 7
      libi2pd/Garlic.cpp

2
libi2pd/ECIESX25519AEADRatchetSession.cpp

@ -107,7 +107,7 @@ namespace garlic @@ -107,7 +107,7 @@ namespace garlic
bool ReceiveRatchetTagSet::IsIndexExpired (int index) const
{
return index < m_TrimBehindIndex || !m_Session || m_Session->IsTerminated ();
return index < m_TrimBehindIndex;
}
bool ReceiveRatchetTagSet::HandleNextMessage (uint8_t * buf, size_t len, int index)

7
libi2pd/Garlic.cpp

@ -876,7 +876,12 @@ namespace garlic @@ -876,7 +876,12 @@ namespace garlic
numExpiredTags++;
}
else
{
auto session = it->second.tagset->GetSession ();
if (!session || session->IsTerminated())
it->second.tagset->Expire ();
++it;
}
}
if (numExpiredTags > 0)
LogPrint (eLogDebug, "Garlic: ", numExpiredTags, " ECIESx25519 tags expired for ", GetIdentHash().ToBase64 ());
@ -1101,7 +1106,7 @@ namespace garlic @@ -1101,7 +1106,7 @@ namespace garlic
auto it = m_ECIESx25519Sessions.find (staticKey);
if (it != m_ECIESx25519Sessions.end ())
{
it->second->SetOwner (nullptr);
it->second->Terminate ();
m_ECIESx25519Sessions.erase (it);
}
}

Loading…
Cancel
Save