diff --git a/ex/q/q.go b/ex/q/q.go index fcc1cf80..ba12a5e7 100644 --- a/ex/q/q.go +++ b/ex/q/q.go @@ -47,8 +47,6 @@ func main() { flag.PrintDefaults() } - conf, _ := dns.ClientConfigFromFile("/etc/resolv.conf") - nameserver := "@" + conf.Servers[0] qtype := uint16(0) qclass := uint16(dns.ClassINET) var qname []string @@ -70,6 +68,8 @@ func main() { } } + var nameserver string + Flags: for i := 0; i < flag.NArg(); i++ { // If it starts with @ it is a nameserver @@ -109,6 +109,15 @@ Flags: qtype = dns.TypeA } + if len(nameserver) == 0 { + conf, err := dns.ClientConfigFromFile("/etc/resolv.conf") + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(2) + } + nameserver = "@" + conf.Servers[0] + } + nameserver = string([]byte(nameserver)[1:]) // chop off @ // if the nameserver is from /etc/resolv.conf the [ and ] are already // added, thereby breaking net.ParseIP. Check for this and don't