Revert "all: keep UserProfiles a slice instead of a map for longer"

This reverts commit e5894aba42.

Breaks macOS/iOS build. Reverting per chat with Josh; he'll fix later today.
This commit is contained in:
Brad Fitzpatrick 2020-09-29 21:39:43 -07:00
parent 90b7293b3b
commit c8f257df00
4 changed files with 13 additions and 8 deletions

View File

@ -654,7 +654,7 @@ func (c *Direct) PollNetMap(ctx context.Context, maxPolls int, cb func(*NetworkM
Peers: resp.Peers,
LocalPort: localPort,
User: resp.Node.User,
UserProfiles: resp.UserProfiles,
UserProfiles: make(map[tailcfg.UserID]tailcfg.UserProfile),
Domain: resp.Domain,
DNS: resp.DNSConfig,
Hostinfo: resp.Node.Hostinfo,
@ -662,6 +662,9 @@ func (c *Direct) PollNetMap(ctx context.Context, maxPolls int, cb func(*NetworkM
DERPMap: lastDERPMap,
Debug: resp.Debug,
}
for _, profile := range resp.UserProfiles {
nm.UserProfiles[profile.ID] = profile
}
if resp.Node.MachineAuthorized {
nm.MachineStatus = tailcfg.MachineAuthorized
} else {

View File

@ -44,9 +44,11 @@ type NetworkMap struct {
// ACLs
User tailcfg.UserID
Domain string
UserProfiles []tailcfg.UserProfile
User tailcfg.UserID
Domain string
// TODO(crawshaw): reduce UserProfiles to []tailcfg.UserProfile?
// There are lots of ways to slice this data, leave it up to users.
UserProfiles map[tailcfg.UserID]tailcfg.UserProfile
// TODO(crawshaw): Groups []tailcfg.Group
// TODO(crawshaw): Capabilities []tailcfg.Capability
}

View File

@ -112,7 +112,7 @@ func (sb *StatusBuilder) SetSelfStatus(ss *PeerStatus) {
}
// AddUser adds a user profile to the status.
func (sb *StatusBuilder) AddUser(up tailcfg.UserProfile) {
func (sb *StatusBuilder) AddUser(id tailcfg.UserID, up tailcfg.UserProfile) {
sb.mu.Lock()
defer sb.mu.Unlock()
if sb.locked {
@ -124,7 +124,7 @@ func (sb *StatusBuilder) AddUser(up tailcfg.UserProfile) {
sb.st.User = make(map[tailcfg.UserID]tailcfg.UserProfile)
}
sb.st.User[up.ID] = up
sb.st.User[id] = up
}
// AddIP adds a Tailscale IP address to the status.

View File

@ -163,8 +163,8 @@ func (b *LocalBackend) UpdateStatus(sb *ipnstate.StatusBuilder) {
// TODO: hostinfo, and its networkinfo
// TODO: EngineStatus copy (and deprecate it?)
if b.netMap != nil {
for _, up := range b.netMap.UserProfiles {
sb.AddUser(up)
for id, up := range b.netMap.UserProfiles {
sb.AddUser(id, up)
}
for _, p := range b.netMap.Peers {
var lastSeen time.Time