123456789101112131415161718192021222324252627282930313233 |
- package libnetwork
- import (
- "github.com/docker/docker/libnetwork/iptables"
- "github.com/docker/docker/libnetwork/netlabel"
- "github.com/docker/docker/libnetwork/options"
- )
- // enabledIptablesVersions returns the iptables versions that are enabled
- // for the controller.
- func (c *Controller) enabledIptablesVersions() []iptables.IPVersion {
- c.mu.Lock()
- defer c.mu.Unlock()
- if c.cfg == nil {
- return nil
- }
- // parse map cfg["bridge"]["generic"]["EnableIPTable"]
- cfgBridge := c.cfg.DriverConfig("bridge")
- cfgGeneric, ok := cfgBridge[netlabel.GenericData].(options.Generic)
- if !ok {
- return nil
- }
- var versions []iptables.IPVersion
- if enabled, ok := cfgGeneric["EnableIPTables"].(bool); enabled || !ok {
- // iptables is enabled unless user explicitly disabled it
- versions = append(versions, iptables.IPv4)
- }
- if enabled, _ := cfgGeneric["EnableIP6Tables"].(bool); enabled {
- versions = append(versions, iptables.IPv6)
- }
- return versions
- }
|