diff --git a/libnetwork/drivers/bridge/bridge.go b/libnetwork/drivers/bridge/bridge.go index 7fcc5e4a30..3c70128124 100644 --- a/libnetwork/drivers/bridge/bridge.go +++ b/libnetwork/drivers/bridge/bridge.go @@ -142,7 +142,7 @@ type bridgeNetwork struct { } type driver struct { - config *configuration + config configuration natChain *iptables.ChainInfo filterChain *iptables.ChainInfo isolationChain1 *iptables.ChainInfo @@ -160,7 +160,7 @@ type driver struct { // New constructs a new bridge driver func newDriver() *driver { - return &driver{networks: map[string]*bridgeNetwork{}, config: &configuration{}} + return &driver{networks: map[string]*bridgeNetwork{}} } // Init registers a new instance of bridge driver @@ -348,7 +348,7 @@ func (n *bridgeNetwork) isolateNetwork(enable bool) error { func (d *driver) configure(option map[string]interface{}) error { var ( - config *configuration + config configuration err error natChain *iptables.ChainInfo filterChain *iptables.ChainInfo @@ -360,20 +360,17 @@ func (d *driver) configure(option map[string]interface{}) error { isolationChain2V6 *iptables.ChainInfo ) - genericData, ok := option[netlabel.GenericData] - if !ok || genericData == nil { - return nil - } - - switch opt := genericData.(type) { + switch opt := option[netlabel.GenericData].(type) { case options.Generic: opaqueConfig, err := options.GenerateFromModel(opt, &configuration{}) if err != nil { return err } - config = opaqueConfig.(*configuration) + config = *opaqueConfig.(*configuration) case *configuration: - config = opt + config = *opt + case nil: + // No GenericData option set. Use defaults. default: return &ErrInvalidDriverConfig{} } diff --git a/libnetwork/drivers/bridge/bridge_test.go b/libnetwork/drivers/bridge/bridge_test.go index c4ada1630a..a29d86d095 100644 --- a/libnetwork/drivers/bridge/bridge_test.go +++ b/libnetwork/drivers/bridge/bridge_test.go @@ -1013,7 +1013,7 @@ func TestCleanupIptableRules(t *testing.T) { ipVersions := []iptables.IPVersion{iptables.IPv4, iptables.IPv6} for _, version := range ipVersions { - if _, _, _, _, err := setupIPChains(&configuration{EnableIPTables: true}, version); err != nil { + if _, _, _, _, err := setupIPChains(configuration{EnableIPTables: true}, version); err != nil { t.Fatalf("Error setting up ip chains for %s: %v", version, err) } diff --git a/libnetwork/drivers/bridge/setup_ip_tables.go b/libnetwork/drivers/bridge/setup_ip_tables.go index 97caf665a2..c4bad446db 100644 --- a/libnetwork/drivers/bridge/setup_ip_tables.go +++ b/libnetwork/drivers/bridge/setup_ip_tables.go @@ -29,7 +29,7 @@ const ( IsolationChain2 = "DOCKER-ISOLATION-STAGE-2" ) -func setupIPChains(config *configuration, version iptables.IPVersion) (*iptables.ChainInfo, *iptables.ChainInfo, *iptables.ChainInfo, *iptables.ChainInfo, error) { +func setupIPChains(config configuration, version iptables.IPVersion) (*iptables.ChainInfo, *iptables.ChainInfo, *iptables.ChainInfo, *iptables.ChainInfo, error) { // Sanity check. if !config.EnableIPTables { return nil, nil, nil, nil, errors.New("cannot create new chains, EnableIPTable is disabled") diff --git a/libnetwork/drivers/bridge/setup_ip_tables_test.go b/libnetwork/drivers/bridge/setup_ip_tables_test.go index 1eb781f3e9..9355be32cb 100644 --- a/libnetwork/drivers/bridge/setup_ip_tables_test.go +++ b/libnetwork/drivers/bridge/setup_ip_tables_test.go @@ -56,7 +56,7 @@ func TestSetupIPChains(t *testing.T) { t.Fatal(err) } - driverconfig := &configuration{ + driverconfig := configuration{ EnableIPTables: true, } d := &driver{