|
@@ -338,16 +338,11 @@ func (c *networkConfiguration) conflictsWithNetworks(id string, others []*bridge
|
|
|
}
|
|
|
|
|
|
func (d *driver) configure(option map[string]interface{}) error {
|
|
|
- var config *configuration
|
|
|
- var err error
|
|
|
-
|
|
|
- err = d.initStore(option)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- d.Lock()
|
|
|
- defer d.Unlock()
|
|
|
+ var (
|
|
|
+ config *configuration
|
|
|
+ err error
|
|
|
+ natChain, filterChain *iptables.ChainInfo
|
|
|
+ )
|
|
|
|
|
|
genericData, ok := option[netlabel.GenericData]
|
|
|
if !ok || genericData == nil {
|
|
@@ -375,13 +370,23 @@ func (d *driver) configure(option map[string]interface{}) error {
|
|
|
}
|
|
|
|
|
|
if config.EnableIPTables {
|
|
|
- d.natChain, d.filterChain, err = setupIPChains(config)
|
|
|
+ natChain, filterChain, err = setupIPChains(config)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ d.Lock()
|
|
|
+ d.natChain = natChain
|
|
|
+ d.filterChain = filterChain
|
|
|
d.config = config
|
|
|
+ d.Unlock()
|
|
|
+
|
|
|
+ err = d.initStore(option)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
return nil
|
|
|
}
|
|
|
|