fix client stuff

This commit is contained in:
Miek Gieben 2011-03-28 16:13:34 +02:00
parent 97a03a9bd5
commit 866e63aafa

View File

@ -1,7 +1,6 @@
package main package main
import ( import (
"net"
"dns" "dns"
"os" "os"
"flag" "flag"
@ -66,21 +65,12 @@ Flags:
// Anything else is a qname // Anything else is a qname
qname = append(qname, flag.Arg(i)) qname = append(qname, flag.Arg(i))
} }
r := new(dns.Resolver)
r.FromFile("/etc/resolv.conf")
r.Timeout = 2
r.Port = *port
r.Tcp = *tcp
r.Attempts = 1
// @server may be a name, resolv that
var err os.Error
nameserver = string([]byte(nameserver)[1:]) // chop off @ nameserver = string([]byte(nameserver)[1:]) // chop off @
_, addr, err := net.LookupHost(nameserver)
if err == nil { d := new(dns.Conn)
r.Servers = addr d.RemoteAddr = nameserver + ":" + *port
} else { d.Attempts = 1
r.Servers = []string{nameserver}
}
m := new(dns.Msg) m := new(dns.Msg)
m.MsgHdr.Authoritative = *aa m.MsgHdr.Authoritative = *aa
@ -100,6 +90,14 @@ Flags:
m.Extra[0] = opt m.Extra[0] = opt
} }
in := make(chan dns.Query)
var out chan dns.Query
if *tcp {
out = dns.QueryAndServerTCP(in, nil)
} else {
out = dns.QueryAndServerUDP(in, nil)
}
for _, v := range qname { for _, v := range qname {
m.Question[0] = dns.Question{v, qtype, qclass} m.Question[0] = dns.Question{v, qtype, qclass}
m.Id = dns.Id() m.Id = dns.Id()