mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
wgengine/magicsock: start removing endpointForDiscoKey
It's not valid to assume that a discokey is globally unique. This removes the first two of the four callers. Updates #3088 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
7817ab6b20
commit
82fa15fa3b
@ -109,6 +109,13 @@ func (m *peerMap) nodeCount() int {
|
|||||||
return len(m.byNodeKey)
|
return len(m.byNodeKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// anyEndpointForDiscoKey reports whether there exists any
|
||||||
|
// peers in the netmap with dk as their DiscoKey.
|
||||||
|
func (m *peerMap) anyEndpointForDiscoKey(dk tailcfg.DiscoKey) bool {
|
||||||
|
_, ok := m.byDiscoKey[dk]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
// endpointForDiscoKey returns the endpoint for dk, or nil
|
// endpointForDiscoKey returns the endpoint for dk, or nil
|
||||||
// if dk is not known to us.
|
// if dk is not known to us.
|
||||||
func (m *peerMap) endpointForDiscoKey(dk tailcfg.DiscoKey) (ep *endpoint, ok bool) {
|
func (m *peerMap) endpointForDiscoKey(dk tailcfg.DiscoKey) (ep *endpoint, ok bool) {
|
||||||
@ -831,12 +838,12 @@ func (c *Conn) SetNetInfoCallback(fn func(*tailcfg.NetInfo)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LastRecvActivityOfDisco describes the time we last got traffic from
|
// LastRecvActivityOfNodeKey describes the time we last got traffic from
|
||||||
// this endpoint (updated every ~10 seconds).
|
// this endpoint (updated every ~10 seconds).
|
||||||
func (c *Conn) LastRecvActivityOfDisco(dk tailcfg.DiscoKey) string {
|
func (c *Conn) LastRecvActivityOfNodeKey(nk tailcfg.NodeKey) string {
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
defer c.mu.Unlock()
|
defer c.mu.Unlock()
|
||||||
de, ok := c.peerMap.endpointForDiscoKey(dk)
|
de, ok := c.peerMap.endpointForNodeKey(nk)
|
||||||
if !ok {
|
if !ok {
|
||||||
return "never"
|
return "never"
|
||||||
}
|
}
|
||||||
@ -2171,7 +2178,7 @@ func (c *Conn) SetNetworkMap(nm *netmap.NetworkMap) {
|
|||||||
|
|
||||||
// discokeys might have changed in the above. Discard unused cached keys.
|
// discokeys might have changed in the above. Discard unused cached keys.
|
||||||
for discoKey := range c.sharedDiscoKey {
|
for discoKey := range c.sharedDiscoKey {
|
||||||
if _, ok := c.peerMap.endpointForDiscoKey(discoKey); !ok {
|
if !c.peerMap.anyEndpointForDiscoKey(discoKey) {
|
||||||
delete(c.sharedDiscoKey, discoKey)
|
delete(c.sharedDiscoKey, discoKey)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -231,7 +231,7 @@ func (e *userspaceEngine) onOpenTimeout(flow flowtrack.Tuple) {
|
|||||||
e.logf("open-conn-track: timeout opening %v to node %v; online=%v, lastRecv=%v",
|
e.logf("open-conn-track: timeout opening %v to node %v; online=%v, lastRecv=%v",
|
||||||
flow, n.Key.ShortString(),
|
flow, n.Key.ShortString(),
|
||||||
online,
|
online,
|
||||||
e.magicConn.LastRecvActivityOfDisco(n.DiscoKey))
|
e.magicConn.LastRecvActivityOfNodeKey(n.Key))
|
||||||
}
|
}
|
||||||
|
|
||||||
func durFmt(t time.Time) string {
|
func durFmt(t time.Time) string {
|
||||||
|
Loading…
Reference in New Issue
Block a user