ipn/ipnstate: add ExitNodeStatus to share the exit node if it is in use, the IP, ID and whether its online. (#4761)

-
Updates #4619

Signed-off-by: nyghtowl <warrick@tailscale.com>
This commit is contained in:
Melanie Warrick
2022-06-07 12:31:10 -07:00
committed by GitHub
parent 6246fa32f0
commit 3a182d5dd6
3 changed files with 40 additions and 0 deletions

View File

@@ -425,6 +425,20 @@ func (b *LocalBackend) updateStatus(sb *ipnstate.StatusBuilder, extraLocked func
s.CurrentTailnet.MagicDNSSuffix = b.netMap.MagicDNSSuffix()
s.CurrentTailnet.MagicDNSEnabled = b.netMap.DNS.Proxied
s.CurrentTailnet.Name = b.netMap.Domain
if b.prefs != nil && !b.prefs.ExitNodeID.IsZero() {
if exitPeer, ok := b.netMap.PeerWithStableID(b.prefs.ExitNodeID); ok {
var online = false
if exitPeer.Online != nil {
online = *exitPeer.Online
}
s.ExitNodeStatus = &ipnstate.ExitNodeStatus{
ID: b.prefs.ExitNodeID,
Online: online,
TailscaleIPs: exitPeer.Addresses,
}
}
}
}
})
sb.MutateSelfStatus(func(ss *ipnstate.PeerStatus) {