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.
pull/797/head
Brad Fitzpatrick 4 years ago
parent 90b7293b3b
commit c8f257df00

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

@ -46,7 +46,9 @@ type NetworkMap struct {
User tailcfg.UserID User tailcfg.UserID
Domain string Domain string
UserProfiles []tailcfg.UserProfile // 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): Groups []tailcfg.Group
// TODO(crawshaw): Capabilities []tailcfg.Capability // TODO(crawshaw): Capabilities []tailcfg.Capability
} }

@ -112,7 +112,7 @@ func (sb *StatusBuilder) SetSelfStatus(ss *PeerStatus) {
} }
// AddUser adds a user profile to the status. // 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() sb.mu.Lock()
defer sb.mu.Unlock() defer sb.mu.Unlock()
if sb.locked { 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 = 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. // AddIP adds a Tailscale IP address to the status.

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

Loading…
Cancel
Save