mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
ipn/ipnlocal: add Expired to PeerStatus
Needed for clients that get information via the /v0/status LocalAPI endpoint (e.g. to not offer expired exit nodes as options). Updates tailscale/corp#8702 Signed-off-by: Mihai Parparita <mihai@tailscale.com>
This commit is contained in:
parent
f011a0923a
commit
67f82e62a1
@ -715,6 +715,10 @@ func peerStatusFromNode(ps *ipnstate.PeerStatus, n *tailcfg.Node) {
|
|||||||
v := views.IPPrefixSliceOf(n.PrimaryRoutes)
|
v := views.IPPrefixSliceOf(n.PrimaryRoutes)
|
||||||
ps.PrimaryRoutes = &v
|
ps.PrimaryRoutes = &v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if n.Expired {
|
||||||
|
ps.Expired = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// WhoIs reports the node and user who owns the node with the given IP:port.
|
// WhoIs reports the node and user who owns the node with the given IP:port.
|
||||||
|
@ -246,6 +246,11 @@ type PeerStatus struct {
|
|||||||
// InEngine means that this peer is tracked by the wireguard engine.
|
// InEngine means that this peer is tracked by the wireguard engine.
|
||||||
// In theory, all of InNetworkMap and InMagicSock and InEngine should all be true.
|
// In theory, all of InNetworkMap and InMagicSock and InEngine should all be true.
|
||||||
InEngine bool
|
InEngine bool
|
||||||
|
|
||||||
|
// Expired means that this peer's node key has expired, based on either
|
||||||
|
// information from control or optimisically set on the client if the
|
||||||
|
// expiration time has passed.
|
||||||
|
Expired bool `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type StatusBuilder struct {
|
type StatusBuilder struct {
|
||||||
@ -427,6 +432,9 @@ func (sb *StatusBuilder) AddPeer(peer key.NodePublic, st *PeerStatus) {
|
|||||||
if st.PeerAPIURL != nil {
|
if st.PeerAPIURL != nil {
|
||||||
e.PeerAPIURL = st.PeerAPIURL
|
e.PeerAPIURL = st.PeerAPIURL
|
||||||
}
|
}
|
||||||
|
if st.Expired {
|
||||||
|
e.Expired = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type StatusUpdater interface {
|
type StatusUpdater interface {
|
||||||
|
Loading…
Reference in New Issue
Block a user