Переглянути джерело

libnetwork: make OptionDNS, OptionDNSOptions, OptionDNSSearch take a slice

Outside of some tests, these options are the only code setting these fields,
so we can update them to set the value, instead of appending.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 2 роки тому
батько
коміт
91cab53a3e
2 змінених файлів з 12 додано та 28 видалено
  1. 6 22
      daemon/container_operations.go
  2. 6 6
      libnetwork/sandbox.go

+ 6 - 22
daemon/container_operations.go

@@ -32,8 +32,6 @@ func (daemon *Daemon) buildSandboxOptions(cfg *config.Config, container *contain
 	var (
 		sboxOptions []libnetwork.SandboxOption
 		err         error
-		dns         []string
-		dnsOptions  []string
 		bindings    = make(nat.PortMap)
 		pbList      []types.PortBinding
 		exposeList  []types.TransportPort
@@ -56,33 +54,19 @@ func (daemon *Daemon) buildSandboxOptions(cfg *config.Config, container *contain
 	}
 
 	if len(container.HostConfig.DNS) > 0 {
-		dns = container.HostConfig.DNS
+		sboxOptions = append(sboxOptions, libnetwork.OptionDNS(container.HostConfig.DNS))
 	} else if len(cfg.DNS) > 0 {
-		dns = cfg.DNS
+		sboxOptions = append(sboxOptions, libnetwork.OptionDNS(cfg.DNS))
 	}
-
-	for _, d := range dns {
-		sboxOptions = append(sboxOptions, libnetwork.OptionDNS(d))
-	}
-
-	var dnsSearch []string
 	if len(container.HostConfig.DNSSearch) > 0 {
-		dnsSearch = container.HostConfig.DNSSearch
+		sboxOptions = append(sboxOptions, libnetwork.OptionDNSSearch(container.HostConfig.DNSSearch))
 	} else if len(cfg.DNSSearch) > 0 {
-		dnsSearch = cfg.DNSSearch
-	}
-	for _, ds := range dnsSearch {
-		sboxOptions = append(sboxOptions, libnetwork.OptionDNSSearch(ds))
+		sboxOptions = append(sboxOptions, libnetwork.OptionDNSSearch(cfg.DNSSearch))
 	}
-
 	if len(container.HostConfig.DNSOptions) > 0 {
-		dnsOptions = container.HostConfig.DNSOptions
+		sboxOptions = append(sboxOptions, libnetwork.OptionDNSOptions(container.HostConfig.DNSOptions))
 	} else if len(cfg.DNSOptions) > 0 {
-		dnsOptions = cfg.DNSOptions
-	}
-
-	for _, ds := range dnsOptions {
-		sboxOptions = append(sboxOptions, libnetwork.OptionDNSOptions(ds))
+		sboxOptions = append(sboxOptions, libnetwork.OptionDNSOptions(cfg.DNSOptions))
 	}
 
 	if container.NetworkSettings.SecondaryIPAddresses != nil {

+ 6 - 6
libnetwork/sandbox.go

@@ -1068,25 +1068,25 @@ func OptionOriginResolvConfPath(path string) SandboxOption {
 
 // OptionDNS function returns an option setter for dns entry option to
 // be passed to container Create method.
-func OptionDNS(dns string) SandboxOption {
+func OptionDNS(dns []string) SandboxOption {
 	return func(sb *Sandbox) {
-		sb.config.dnsList = append(sb.config.dnsList, dns)
+		sb.config.dnsList = dns
 	}
 }
 
 // OptionDNSSearch function returns an option setter for dns search entry option to
 // be passed to container Create method.
-func OptionDNSSearch(search string) SandboxOption {
+func OptionDNSSearch(search []string) SandboxOption {
 	return func(sb *Sandbox) {
-		sb.config.dnsSearchList = append(sb.config.dnsSearchList, search)
+		sb.config.dnsSearchList = search
 	}
 }
 
 // OptionDNSOptions function returns an option setter for dns options entry option to
 // be passed to container Create method.
-func OptionDNSOptions(options string) SandboxOption {
+func OptionDNSOptions(options []string) SandboxOption {
 	return func(sb *Sandbox) {
-		sb.config.dnsOptionsList = append(sb.config.dnsOptionsList, options)
+		sb.config.dnsOptionsList = options
 	}
 }