Browse Source

update LeaseSet if inbound tunnel was restored

pull/2108/head
orignal 1 month ago
parent
commit
fe71776b6f
  1. 13
      libi2pd/Tunnel.cpp

13
libi2pd/Tunnel.cpp

@ -250,7 +250,18 @@ namespace tunnel
void InboundTunnel::HandleTunnelDataMsg (std::shared_ptr<I2NPMessage>&& msg) void InboundTunnel::HandleTunnelDataMsg (std::shared_ptr<I2NPMessage>&& msg)
{ {
if (GetState () != eTunnelStateExpiring) SetState (eTunnelStateEstablished); // incoming messages means a tunnel is alive if (!IsEstablished () && GetState () != eTunnelStateExpiring)
{
// incoming messages means a tunnel is alive
SetState (eTunnelStateEstablished);
auto pool = GetTunnelPool ();
if (pool)
{
// update LeaseSet
auto dest = pool->GetLocalDestination ();
if (dest) dest->SetLeaseSetUpdated ();
}
}
EncryptTunnelMsg (msg, msg); EncryptTunnelMsg (msg, msg);
msg->from = GetSharedFromThis (); msg->from = GetSharedFromThis ();
m_Endpoint.HandleDecryptedTunnelDataMsg (msg); m_Endpoint.HandleDecryptedTunnelDataMsg (msg);

Loading…
Cancel
Save