|
|
|
@ -95,6 +95,7 @@ import (
|
|
|
|
"tailscale.com/types/preftype"
|
|
|
|
"tailscale.com/types/preftype"
|
|
|
|
"tailscale.com/types/ptr"
|
|
|
|
"tailscale.com/types/ptr"
|
|
|
|
"tailscale.com/types/views"
|
|
|
|
"tailscale.com/types/views"
|
|
|
|
|
|
|
|
"tailscale.com/util/clientmetric"
|
|
|
|
"tailscale.com/util/deephash"
|
|
|
|
"tailscale.com/util/deephash"
|
|
|
|
"tailscale.com/util/dnsname"
|
|
|
|
"tailscale.com/util/dnsname"
|
|
|
|
"tailscale.com/util/goroutines"
|
|
|
|
"tailscale.com/util/goroutines"
|
|
|
|
@ -2863,6 +2864,9 @@ func (b *LocalBackend) WatchNotificationsAs(ctx context.Context, actor ipnauth.A
|
|
|
|
mak.Set(&b.notifyWatchers, sessionID, session)
|
|
|
|
mak.Set(&b.notifyWatchers, sessionID, session)
|
|
|
|
b.mu.Unlock()
|
|
|
|
b.mu.Unlock()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
metricCurrentWatchIPNBus.Add(1)
|
|
|
|
|
|
|
|
defer metricCurrentWatchIPNBus.Add(-1)
|
|
|
|
|
|
|
|
|
|
|
|
defer func() {
|
|
|
|
defer func() {
|
|
|
|
b.mu.Lock()
|
|
|
|
b.mu.Lock()
|
|
|
|
delete(b.notifyWatchers, sessionID)
|
|
|
|
delete(b.notifyWatchers, sessionID)
|
|
|
|
@ -7696,3 +7700,7 @@ func (b *LocalBackend) vipServicesFromPrefsLocked(prefs ipn.PrefsView) []*tailcf
|
|
|
|
|
|
|
|
|
|
|
|
return slicesx.MapValues(services)
|
|
|
|
return slicesx.MapValues(services)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
|
|
|
metricCurrentWatchIPNBus = clientmetric.NewGauge("localbackend_current_watch_ipn_bus")
|
|
|
|
|
|
|
|
)
|
|
|
|
|