@ -592,9 +592,23 @@ func New(logf logger.Logf, prefHint string) (NetfilterRunner, error) {
mode := detectFirewallMode ( logf , prefHint )
mode := detectFirewallMode ( logf , prefHint )
switch mode {
switch mode {
case FirewallModeIPTables :
case FirewallModeIPTables :
return newIPTablesRunner ( logf )
// Note that we don't simply return an newIPTablesRunner here because it
// would return a `nil` iptablesRunner which is different from returning
// a nil NetfilterRunner.
ipr , err := newIPTablesRunner ( logf )
if err != nil {
return nil , err
}
return ipr , nil
case FirewallModeNfTables :
case FirewallModeNfTables :
return newNfTablesRunner ( logf )
// Note that we don't simply return an newNfTablesRunner here because it
// would return a `nil` nftablesRunner which is different from returning
// a nil NetfilterRunner.
nfr , err := newNfTablesRunner ( logf )
if err != nil {
return nil , err
}
return nfr , nil
default :
default :
return nil , fmt . Errorf ( "unknown firewall mode %v" , mode )
return nil , fmt . Errorf ( "unknown firewall mode %v" , mode )
}
}