If the NodeAttrDisableRelayClient node attribute is set, ensures that a node cannot allocate endpoints on a UDP relay server itself, and cannot use newly-discovered paths (via disco/CallMeMaybeVia) that traverse a UDP relay server.
Fixestailscale/corp#30180
Signed-off-by: Dylan Bargatze <dylan@tailscale.com>
selftailcfg.NodeView// from last onNodeViewsUpdate
selftailcfg.NodeView// from last onNodeViewsUpdate
peersviews.Slice[tailcfg.NodeView]// from last onNodeViewsUpdate, sorted by Node.ID; Note: [netmap.NodeMutation]'s rx'd in onNodeMutationsUpdate are never applied
peersviews.Slice[tailcfg.NodeView]// from last onNodeViewsUpdate, sorted by Node.ID; Note: [netmap.NodeMutation]'s rx'd in onNodeMutationsUpdate are never applied
filt*filter.Filter// from last onFilterUpdate
filt*filter.Filter// from last onFilterUpdate
relayClientEnabledbool// whether we can allocate UDP relay endpoints on UDP relay servers
relayClientEnabledbool// whether we can allocate UDP relay endpoints on UDP relay servers or receive CallMeMaybeVia messages from peers
lastFlagsdebugFlags// at time of last onNodeViewsUpdate
lastFlagsdebugFlags// at time of last onNodeViewsUpdate
privateKeykey.NodePrivate// WireGuard private key for this node
privateKeykey.NodePrivate// WireGuard private key for this node
everHadKeybool// whether we ever had a non-zero private key
everHadKeybool// whether we ever had a non-zero private key