net/sockstats: remove explicit dependency on wgengine/monitor
Followup to #7177 to avoid adding extra dependencies to the CLI. We instead declare an interface for the link monitor. Signed-off-by: Mihai Parparita <mihai@tailscale.com>
This commit is contained in:
@@ -11,7 +11,7 @@ package sockstats
|
||||
import (
|
||||
"context"
|
||||
|
||||
"tailscale.com/wgengine/monitor"
|
||||
"tailscale.com/net/interfaces"
|
||||
)
|
||||
|
||||
type SockStats struct {
|
||||
@@ -34,6 +34,13 @@ func Get() *SockStats {
|
||||
return get()
|
||||
}
|
||||
|
||||
func SetLinkMonitor(lm *monitor.Mon) {
|
||||
// LinkMonitor is the interface for the parts of wgengine/mointor's Mon that we
|
||||
// need, to avoid the dependency.
|
||||
type LinkMonitor interface {
|
||||
InterfaceState() *interfaces.State
|
||||
RegisterChangeCallback(interfaces.ChangeFunc) (unregister func())
|
||||
}
|
||||
|
||||
func SetLinkMonitor(lm LinkMonitor) {
|
||||
setLinkMonitor(lm)
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ package sockstats
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"tailscale.com/wgengine/monitor"
|
||||
)
|
||||
|
||||
func withSockStats(ctx context.Context, label string) context.Context {
|
||||
@@ -19,5 +17,5 @@ func get() *SockStats {
|
||||
return nil
|
||||
}
|
||||
|
||||
func setLinkMonitor(lm *monitor.Mon) {
|
||||
func setLinkMonitor(lm LinkMonitor) {
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ import (
|
||||
"sync/atomic"
|
||||
|
||||
"tailscale.com/net/interfaces"
|
||||
"tailscale.com/wgengine/monitor"
|
||||
)
|
||||
|
||||
type sockStatCounters struct {
|
||||
@@ -113,7 +112,7 @@ func get() *SockStats {
|
||||
return r
|
||||
}
|
||||
|
||||
func setLinkMonitor(lm *monitor.Mon) {
|
||||
func setLinkMonitor(lm LinkMonitor) {
|
||||
sockStats.mu.Lock()
|
||||
defer sockStats.mu.Unlock()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user