This commit is contained in:
jdl
2026-06-09 07:40:06 +02:00
parent 3968fd8f16
commit 1c304767b8
5 changed files with 46 additions and 12 deletions

View File

@@ -37,7 +37,11 @@ func (a *App) onAddPeer(p HubPeer) {
a.peersByIP[peer.VPNIP] = peer
if !peer.IsPublic {
a.devAddPeer(peer)
if a.relay != nil {
a.devAddRelayed(peer, a.relay.VPNIP)
} else {
a.devAddPeer(peer)
}
if a.forwarder != nil && endpoint.IsValid() {
a.forwarder.SetEndpoint(peer.VPNIP.As4()[3], endpoint)
}
@@ -86,11 +90,21 @@ func (a *App) switchActiveRelay() {
}
if best == nil {
log.Printf("no relay available")
return
} else {
a.devSetRelay(best, best.PreferredEndpoint())
a.relay = best
}
a.devSetRelay(best, best.PreferredEndpoint())
a.relay = best
for _, p := range a.peersByKey {
if p.State != StateRelayed {
continue
}
if best != nil {
a.devAddRelayed(p, best.VPNIP)
} else {
a.devAddPeer(p)
}
}
}
func preferredEndpoint(v4, v6 netip.AddrPort) netip.AddrPort {