@ -464,17 +464,19 @@ func (b *LocalBackend) updateFilter(netMap *controlclient.NetworkMap, prefs *Pre
return
return
}
}
localNets := wgCIDRsToFilter ( netMap . Addresses , advRoutes )
if ! haveNetmap {
switch {
case ! haveNetmap :
b . logf ( "netmap packet filter: (not ready yet)" )
b . logf ( "netmap packet filter: (not ready yet)" )
b . e . SetFilter ( filter . NewAllowNone ( b . logf ) )
b . e . SetFilter ( filter . NewAllowNone ( b . logf ) )
case shieldsUp :
return
}
localNets := wgCIDRsToFilter ( netMap . Addresses , advRoutes )
if shieldsUp {
b . logf ( "netmap packet filter: (shields up)" )
b . logf ( "netmap packet filter: (shields up)" )
var prevFilter * filter . Filter // don't reuse old filter state
var prevFilter * filter . Filter // don't reuse old filter state
b . e . SetFilter ( filter . New ( filter . Matches { } , localNets , prevFilter , b . logf ) )
b . e . SetFilter ( filter . New ( filter . Matches { } , localNets , prevFilter , b . logf ) )
default :
} else {
b . logf ( "netmap packet filter: %v" , packetFilter )
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 , b . e . GetFilter ( ) , b . logf ) )
}
}