diff --git a/prog/weaver/main.go b/prog/weaver/main.go index 3656b9fc..be265c4b 100644 --- a/prog/weaver/main.go +++ b/prog/weaver/main.go @@ -271,6 +271,7 @@ func main() { var proxy *weaveproxy.Proxy var err error if proxyConfig.Enabled { + proxyConfig.DNSListenAddress = dnsConfig.addressOnly() if noDNS { proxyConfig.WithoutDNS = true } diff --git a/proxy/proxy.go b/proxy/proxy.go index 92e6f642..052e4222 100644 --- a/proxy/proxy.go +++ b/proxy/proxy.go @@ -61,6 +61,7 @@ type Config struct { NoRewriteHosts bool TLSConfig TLSConfig WithoutDNS bool + DNSListenAddress string NoMulticastRoute bool KeepTXOn bool DockerBridge string @@ -78,7 +79,6 @@ type Proxy struct { Config client *weavedocker.Client weave *weaveapi.Client - dockerBridgeIP string hostnameMatchRegexp *regexp.Regexp weaveWaitVolume string weaveWaitNoopVolume string @@ -158,15 +158,6 @@ func NewProxy(c Config) (*Proxy, error) { Log.Info(p.client.Info()) - if !p.WithoutDNS { - ip, err := weavenet.FindBridgeIP(c.DockerBridge, nil) - if err != nil { - return nil, err - } - p.dockerBridgeIP = ip.String() - Log.Infof("Using docker bridge IP for DNS: %v", p.dockerBridgeIP) - } - p.hostnameMatchRegexp, err = regexp.Compile(c.HostnameMatch) if err != nil { err := fmt.Errorf("Incorrect hostname match '%s': %s", c.HostnameMatch, err.Error()) @@ -595,7 +586,7 @@ func (proxy *Proxy) setWeaveDNS(hostConfig jsonObject, hostname, dnsDomain strin if err != nil { return err } - hostConfig["Dns"] = append(dns, proxy.dockerBridgeIP) + hostConfig["Dns"] = append(dns, proxy.DNSListenAddress) dnsSearch, err := hostConfig.StringArray("DnsSearch") if err != nil {