wgengine/magicsock: add an explicit else branch to peerMap update.

Clarifies that the replace+delete of peerinfo data is only when peerInfo
already exists.

Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
David Anderson
2021-10-18 13:05:12 -07:00
parent 1c56643136
commit e7eb46bced
2 changed files with 7 additions and 7 deletions

View File

@@ -172,12 +172,13 @@ func (m *peerMap) upsertEndpoint(ep *endpoint) {
if pi == nil {
pi = newPeerInfo(ep)
m.byNodeKey[ep.publicKey] = pi
}
old := pi.ep
pi.ep = ep
if old != nil && old.discoKey != ep.discoKey {
delete(m.byDiscoKey, old.discoKey)
delete(m.nodesOfDisco[old.discoKey], ep.publicKey)
} else {
old := pi.ep
pi.ep = ep
if old != nil && old.discoKey != ep.discoKey {
delete(m.byDiscoKey, old.discoKey)
delete(m.nodesOfDisco[old.discoKey], ep.publicKey)
}
}
if !ep.discoKey.IsZero() {
m.byDiscoKey[ep.discoKey] = pi