diff --git a/cmd/gluetun/main.go b/cmd/gluetun/main.go index 81ec9a5e..7a57a0f5 100644 --- a/cmd/gluetun/main.go +++ b/cmd/gluetun/main.go @@ -228,11 +228,6 @@ func _main(ctx context.Context, buildInfo models.BuildInformation, Level: firewallLogLevel, }) routingConf := routing.NewRouting(routingLogger) - firewallLogger := logger.NewChild(logging.Settings{ - Prefix: "firewall: ", - Level: firewallLogLevel, - }) - firewallConf := firewall.NewConfigurator(firewallLogger, cmder, routingConf) defaultInterface, defaultGateway, err := routingConf.DefaultRoute() if err != nil { @@ -249,7 +244,12 @@ func _main(ctx context.Context, buildInfo models.BuildInformation, return err } - firewallConf.SetNetworkInformation(defaultInterface, defaultGateway, localNetworks, defaultIP) + firewallLogger := logger.NewChild(logging.Settings{ + Prefix: "firewall: ", + Level: firewallLogLevel, + }) + firewallConf := firewall.NewConfigurator(firewallLogger, cmder, routingConf, + defaultInterface, defaultGateway, localNetworks, defaultIP) if err := routingConf.Setup(); err != nil { if strings.Contains(err.Error(), "operation not permitted") { diff --git a/internal/firewall/firewall.go b/internal/firewall/firewall.go index 2ccc06aa..87ca5e9d 100644 --- a/internal/firewall/firewall.go +++ b/internal/firewall/firewall.go @@ -50,23 +50,20 @@ type configurator struct { //nolint:maligned } // NewConfigurator creates a new Configurator instance. -func NewConfigurator(logger logging.Logger, cmder command.Commander, routing routing.Routing) Configurator { - return &configurator{ +func NewConfigurator(logger logging.Logger, cmder command.Commander, + routing routing.Routing, defaultInterface string, defaultGateway net.IP, + localNetworks []routing.LocalNetwork, localIP net.IP) *Config { + return &Config{ commander: cmder, logger: logger, routing: routing, allowedInputPorts: make(map[uint16]string), ip6Tables: ip6tablesSupported(context.Background(), cmder), customRulesPath: "/iptables/post-rules.txt", + // Obtained from routing + defaultInterface: defaultInterface, + defaultGateway: defaultGateway, + localNetworks: localNetworks, + localIP: localIP, } } - -func (c *configurator) SetNetworkInformation( - defaultInterface string, defaultGateway net.IP, localNetworks []routing.LocalNetwork, localIP net.IP) { - c.networkInfoMutex.Lock() - defer c.networkInfoMutex.Unlock() - c.defaultInterface = defaultInterface - c.defaultGateway = defaultGateway - c.localNetworks = localNetworks - c.localIP = localIP -}