refresh remote leaseset on udp ack timeout

This commit is contained in:
acetone
2026-07-23 21:12:14 +03:00
parent 98310bc504
commit 972bebb06d
3 changed files with 12 additions and 0 deletions
+9
View File
@@ -747,6 +747,15 @@ namespace datagram
if(ls && ls->GetExpirationTime() > oldExpire) m_RemoteLeaseSet = ls;
}
void DatagramSession::RequestUpdatedLeaseSet ()
{
if (!m_RequestingLS)
{
m_RequestingLS = true;
m_LocalDestination->RequestDestination(m_RemoteIdent, std::bind(&DatagramSession::HandleLeaseSetUpdated, this, std::placeholders::_1));
}
}
void DatagramSession::FlushSendQueue ()
{
if (m_SendQueue.empty ()) return;
+2
View File
@@ -85,6 +85,8 @@ namespace datagram
void SetVersion (DatagramVersion version) { m_Version = version; }
void DropSharedRoutingPath () { if (m_RoutingSession) m_RoutingSession->SetSharedRoutingPath (nullptr); }
// request LeaseSet update from floodfill in case our copy contains dead leases
void RequestUpdatedLeaseSet ();
struct Info
{
+1
View File
@@ -216,6 +216,7 @@ namespace client
if (session)
{
session->DropSharedRoutingPath ();
session->RequestUpdatedLeaseSet (); // in case current leases are dead
m_Destination->SendDatagram (session, nullptr, 0, 0, 0, &options);
}
}