From 4336de0d98d98e597fc4e77ab5cf5b859c212167 Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Wed, 25 Mar 2020 03:47:29 -0400 Subject: [PATCH] ipn/local: don't print packet filter every single time. It's extremely noisy right now for domains with complex ACLs. --- ipn/local.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ipn/local.go b/ipn/local.go index 60c69acf4..1ccb461c1 100644 --- a/ipn/local.go +++ b/ipn/local.go @@ -37,6 +37,7 @@ type LocalBackend struct { backendLogID string portpoll *portlist.Poller // may be nil newDecompressor func() (controlclient.Decompressor, error) + lastFilterPrint time.Time // The mutex protects the following elements. mu sync.Mutex @@ -310,7 +311,15 @@ func (b *LocalBackend) updateFilter(netMap *controlclient.NetworkMap) { // Not configured yet, block everything b.e.SetFilter(filter.NewAllowNone()) } else { - b.logf("netmap packet filter: %v\n", b.netMapCache.PacketFilter) + // TODO(apenwarr): don't replace filter at all if unchanged. + // TODO(apenwarr): print a diff instead of full filter. + now := time.Now() + if now.Sub(b.lastFilterPrint) > 1*time.Minute { + b.logf("netmap packet filter: %v\n", b.netMapCache.PacketFilter) + b.lastFilterPrint = now + } else { + b.logf("netmap packet filter: (suppressed)\n") + } b.e.SetFilter(filter.New(netMap.PacketFilter)) } }