mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-10 05:11:10 +00:00
attach updated LeaseSet to ECIESx25519 incoming sessions
This commit is contained in:
parent
79dbf2a43e
commit
d6f5640685
@ -160,9 +160,10 @@ namespace garlic
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ECIESX25519AEADRatchetSession::ECIESX25519AEADRatchetSession (GarlicDestination * owner, bool attachLeaseSet):
|
ECIESX25519AEADRatchetSession::ECIESX25519AEADRatchetSession (GarlicDestination * owner, bool attachLeaseSetNS):
|
||||||
GarlicRoutingSession (owner, attachLeaseSet)
|
GarlicRoutingSession (owner, true)
|
||||||
{
|
{
|
||||||
|
if (!attachLeaseSetNS) SetLeaseSetUpdateStatus (eLeaseSetUpToDate);
|
||||||
RAND_bytes (m_PaddingSizes, 32); m_NextPaddingSize = 0;
|
RAND_bytes (m_PaddingSizes, 32); m_NextPaddingSize = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1101,6 +1102,7 @@ namespace garlic
|
|||||||
RouterIncomingRatchetSession::RouterIncomingRatchetSession (const i2p::crypto::NoiseSymmetricState& initState):
|
RouterIncomingRatchetSession::RouterIncomingRatchetSession (const i2p::crypto::NoiseSymmetricState& initState):
|
||||||
ECIESX25519AEADRatchetSession (&i2p::context, false)
|
ECIESX25519AEADRatchetSession (&i2p::context, false)
|
||||||
{
|
{
|
||||||
|
SetLeaseSetUpdateStatus (eLeaseSetDoNotSend);
|
||||||
SetNoiseState (initState);
|
SetNoiseState (initState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ namespace garlic
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
ECIESX25519AEADRatchetSession (GarlicDestination * owner, bool attachLeaseSet);
|
ECIESX25519AEADRatchetSession (GarlicDestination * owner, bool attachLeaseSetNS);
|
||||||
~ECIESX25519AEADRatchetSession ();
|
~ECIESX25519AEADRatchetSession ();
|
||||||
|
|
||||||
bool HandleNextMessage (uint8_t * buf, size_t len, std::shared_ptr<ReceiveRatchetTagSet> receiveTagset, int index = 0);
|
bool HandleNextMessage (uint8_t * buf, size_t len, std::shared_ptr<ReceiveRatchetTagSet> receiveTagset, int index = 0);
|
||||||
|
@ -946,12 +946,17 @@ namespace stream
|
|||||||
if (!remoteLeaseSet)
|
if (!remoteLeaseSet)
|
||||||
{
|
{
|
||||||
LogPrint (eLogWarning, "Streaming: LeaseSet ", m_RemoteIdentity->GetIdentHash ().ToBase64 (), m_RemoteLeaseSet ? " expired" : " not found");
|
LogPrint (eLogWarning, "Streaming: LeaseSet ", m_RemoteIdentity->GetIdentHash ().ToBase64 (), m_RemoteLeaseSet ? " expired" : " not found");
|
||||||
if (m_RemoteLeaseSet && m_RemoteLeaseSet->IsPublishedEncrypted ())
|
if (m_RemoteLeaseSet && m_RemoteLeaseSet->IsPublishedEncrypted ())
|
||||||
|
{
|
||||||
m_LocalDestination.GetOwner ()->RequestDestinationWithEncryptedLeaseSet (
|
m_LocalDestination.GetOwner ()->RequestDestinationWithEncryptedLeaseSet (
|
||||||
std::make_shared<i2p::data::BlindedPublicKey>(m_RemoteIdentity));
|
std::make_shared<i2p::data::BlindedPublicKey>(m_RemoteIdentity));
|
||||||
|
return; // we keep m_RemoteLeaseSet for possible next request
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
m_RemoteLeaseSet = nullptr;
|
||||||
m_LocalDestination.GetOwner ()->RequestDestination (m_RemoteIdentity->GetIdentHash ()); // try to request for a next attempt
|
m_LocalDestination.GetOwner ()->RequestDestination (m_RemoteIdentity->GetIdentHash ()); // try to request for a next attempt
|
||||||
return;
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user