This commit is contained in:
jdl
2026-06-15 19:45:07 +02:00
parent c47d00e694
commit b86b43f1de
4 changed files with 33 additions and 29 deletions

View File

@@ -2,7 +2,6 @@ package peer
import (
"log"
"net/netip"
"time"
"vppn/peer/wginterface"
@@ -31,7 +30,6 @@ func (a *App) onStateTick() {
case StateRelayed:
// If we have an ep to probe, add it.
if ep := p.PreferredEndpoint(); ep.IsValid() {
p.ProbeStart = time.Now()
a.devAddProbe(p, ep)
}
@@ -40,15 +38,12 @@ func (a *App) onStateTick() {
// Promote probing peers to direct once alive (direct path confirmed
// working).
a.devPromote(p)
} else if ep := p.PreferredEndpoint(); ep.IsValid() && ep != p.WGEndpoint() {
// Update the probe address if it's changed.
} else if ep := p.PreferredEndpoint(); ep.IsValid() && ep != p.ProbeEndpoint {
// Re-start probing if we see a new endpoint.
a.devAddProbe(p, ep)
} else if time.Since(p.ProbeStart) > 8*wginterface.ProbeKeepalive {
// Give up probing if we haven't been able to handshake.
p.EndpointV4 = netip.AddrPort{}
p.EndpointV6 = netip.AddrPort{}
p.EndpointLAN = netip.AddrPort{}
a.devAddPeer(p)
a.devAddRelayed(p)
}
case StateDirect:
@@ -58,10 +53,7 @@ func (a *App) onStateTick() {
// Stale non-public direct peer: demote to relayed and wait for new IP
// information.
p.EndpointV4 = netip.AddrPort{}
p.EndpointV6 = netip.AddrPort{}
p.EndpointLAN = netip.AddrPort{}
a.devAddPeer(p)
a.devAddRelayed(p)
}
}