From a260de44e96edbd7e4e99e0c73ba2960460ffc25 Mon Sep 17 00:00:00 2001 From: Dmitry Chestnykh Date: Thu, 21 Apr 2011 10:23:03 -0400 Subject: [PATCH] net: try /etc/hosts before loading DNS config. On Mac X 10.6 /etc/resolv.conf is changed dynamically, and may not exist at all when all network connections are turned off, thus any lookup, even for "localhost" would fail with "error reading DNS config: open /etc/resolv.conf: no such file or directory". This change avoids the error by trying to lookup addresses in /etc/hosts before loading DNS config. R=golang-dev, rsc1, rsc CC=golang-dev https://golang.org/cl/4431054 --- src/pkg/net/dnsclient.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pkg/net/dnsclient.go b/src/pkg/net/dnsclient.go index d3e4049ad2..89f2409bf6 100644 --- a/src/pkg/net/dnsclient.go +++ b/src/pkg/net/dnsclient.go @@ -313,16 +313,16 @@ func lookup(name string, qtype uint16) (cname string, addrs []dnsRR, err os.Erro // depending on our lookup code, so that Go and C get the same // answers. func goLookupHost(name string) (addrs []string, err os.Error) { - onceLoadConfig.Do(loadConfig) - if dnserr != nil || cfg == nil { - err = dnserr - return - } // Use entries from /etc/hosts if they match. addrs = lookupStaticHost(name) if len(addrs) > 0 { return } + onceLoadConfig.Do(loadConfig) + if dnserr != nil || cfg == nil { + err = dnserr + return + } ips, err := goLookupIP(name) if err != nil { return -- 2.48.1