ipn, wgengine/filter: fix Shields Up recent regression and old bug

Fixes #1192 (regression)
Fixes #1193 (old bug)
This commit is contained in:
Brad Fitzpatrick
2021-01-22 13:39:53 -08:00
parent 97496a83af
commit e7bf144c3f
2 changed files with 13 additions and 4 deletions

View File

@@ -562,12 +562,13 @@ func (b *LocalBackend) updateFilter(netMap *controlclient.NetworkMap, prefs *Pre
localNets := unmapIPPrefixes(netMap.Addresses, advRoutes)
oldFilter := b.e.GetFilter()
if shieldsUp {
b.logf("netmap packet filter: (shields up)")
b.e.SetFilter(filter.NewShieldsUpFilter(b.logf))
b.e.SetFilter(filter.NewShieldsUpFilter(localNets, oldFilter, b.logf))
} else {
b.logf("netmap packet filter: %v", packetFilter)
b.e.SetFilter(filter.New(packetFilter, localNets, b.e.GetFilter(), b.logf))
b.e.SetFilter(filter.New(packetFilter, localNets, oldFilter, b.logf))
}
}