|
|
@ -785,6 +785,20 @@ func (c *Direct) sendMapRequest(ctx context.Context, maxPolls int, cb func(*Netw
|
|
|
|
}
|
|
|
|
}
|
|
|
|
addUserProfile(nm.User)
|
|
|
|
addUserProfile(nm.User)
|
|
|
|
for _, peer := range resp.Peers {
|
|
|
|
for _, peer := range resp.Peers {
|
|
|
|
|
|
|
|
// TODO(bradfitz): ideally we'd push down the semantically correct
|
|
|
|
|
|
|
|
// Nodes with differing User vs Sharer fields, but that means
|
|
|
|
|
|
|
|
// updating Windows, macOS, and tailscale status to respect all
|
|
|
|
|
|
|
|
// those fields, but until we have a plan for what the UI should
|
|
|
|
|
|
|
|
// be later when we treat them differently, it's easier to just
|
|
|
|
|
|
|
|
// merge it together here. The server will anonymize UserProfile
|
|
|
|
|
|
|
|
// records of those not in your network and not a sharer, which
|
|
|
|
|
|
|
|
// will be most of the peer.Users so it'll be rare when a node's
|
|
|
|
|
|
|
|
// owner-who's-different-from-sharer will have a non-scrubbed
|
|
|
|
|
|
|
|
// UserProfile: they would've also needed to share a node
|
|
|
|
|
|
|
|
// themselves. Until we care, merge the data here.
|
|
|
|
|
|
|
|
if !peer.Sharer.IsZero() {
|
|
|
|
|
|
|
|
peer.User = peer.Sharer
|
|
|
|
|
|
|
|
}
|
|
|
|
addUserProfile(peer.User)
|
|
|
|
addUserProfile(peer.User)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if resp.Node.MachineAuthorized {
|
|
|
|
if resp.Node.MachineAuthorized {
|
|
|
|