|
|
|
|
@ -1825,23 +1825,16 @@ func (c *Conn) handleDiscoMessage(msg []byte, src netaddr.IPPort) bool { |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// de may be nil
|
|
|
|
|
func (c *Conn) handlePingLocked(dm *disco.Ping, de *discoEndpoint, src netaddr.IPPort, sender tailcfg.DiscoKey, peerNode *tailcfg.Node) { |
|
|
|
|
if peerNode == nil { |
|
|
|
|
c.logf("magicsock: disco: [unexpected] ignoring ping from unknown peer Node") |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
likelyHeartBeat := de != nil && src == de.lastPingFrom && time.Since(de.lastPingTime) < 5*time.Second |
|
|
|
|
var discoShort string |
|
|
|
|
if de != nil { |
|
|
|
|
discoShort = de.discoShort |
|
|
|
|
de.lastPingFrom = src |
|
|
|
|
de.lastPingTime = time.Now() |
|
|
|
|
} else { |
|
|
|
|
discoShort = sender.ShortString() |
|
|
|
|
} |
|
|
|
|
likelyHeartBeat := src == de.lastPingFrom && time.Since(de.lastPingTime) < 5*time.Second |
|
|
|
|
de.lastPingFrom = src |
|
|
|
|
de.lastPingTime = time.Now() |
|
|
|
|
if !likelyHeartBeat || debugDisco { |
|
|
|
|
c.logf("magicsock: disco: %v<-%v (%v, %v) got ping tx=%x", c.discoShort, discoShort, peerNode.Key.ShortString(), src, dm.TxID[:6]) |
|
|
|
|
c.logf("magicsock: disco: %v<-%v (%v, %v) got ping tx=%x", c.discoShort, de.discoShort, peerNode.Key.ShortString(), src, dm.TxID[:6]) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Remember this route if not present.
|
|
|
|
|
|