|
|
@ -44,7 +44,6 @@ import (
|
|
|
|
"tailscale.com/util/clientmetric"
|
|
|
|
"tailscale.com/util/clientmetric"
|
|
|
|
"tailscale.com/util/deephash"
|
|
|
|
"tailscale.com/util/deephash"
|
|
|
|
"tailscale.com/util/mak"
|
|
|
|
"tailscale.com/util/mak"
|
|
|
|
"tailscale.com/util/singleflight"
|
|
|
|
|
|
|
|
"tailscale.com/version"
|
|
|
|
"tailscale.com/version"
|
|
|
|
"tailscale.com/wgengine/filter"
|
|
|
|
"tailscale.com/wgengine/filter"
|
|
|
|
"tailscale.com/wgengine/magicsock"
|
|
|
|
"tailscale.com/wgengine/magicsock"
|
|
|
@ -146,10 +145,6 @@ type userspaceEngine struct {
|
|
|
|
// value of the ICMP identifer and sequence number concatenated.
|
|
|
|
// value of the ICMP identifer and sequence number concatenated.
|
|
|
|
icmpEchoResponseCallback map[uint32]func()
|
|
|
|
icmpEchoResponseCallback map[uint32]func()
|
|
|
|
|
|
|
|
|
|
|
|
// this singleflight is used to deduplicate calls to getStatus when we
|
|
|
|
|
|
|
|
// don't care if the data is perfectly fresh
|
|
|
|
|
|
|
|
getStatusSf singleflight.Group[struct{}, *Status]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Lock ordering: magicsock.Conn.mu, wgLock, then mu.
|
|
|
|
// Lock ordering: magicsock.Conn.mu, wgLock, then mu.
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|