|
|
|
@ -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))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|