diff options
Diffstat (limited to 'cmd/resolver/main.go')
| -rw-r--r-- | cmd/resolver/main.go | 55 |
1 files changed, 4 insertions, 51 deletions
diff --git a/cmd/resolver/main.go b/cmd/resolver/main.go index e5e7548..2fdfe3b 100644 --- a/cmd/resolver/main.go +++ b/cmd/resolver/main.go @@ -7,8 +7,6 @@ import ( "fmt" "log" "math/rand" - "net" - "net/url" "strings" "time" @@ -49,54 +47,6 @@ func initSystemResolver() (rc *libnet.ResolvConf, cl dns.Client) { return } -func createDNSClient(opts *options) (cl dns.Client) { - var ( - ns = opts.nameserver - iphost string - port string - ) - - nsurl, err := url.Parse(ns) - if err != nil { - log.Fatalf("! invalid name server: %q\n", ns) - } - - ipport := strings.Split(nsurl.Host, ":") - switch len(ipport) { - case 1: - iphost = ipport[0] - case 2: - iphost = ipport[0] - port = ipport[1] - default: - log.Fatalf("! invalid name server: %q\n", ns) - } - - switch nsurl.Scheme { - case "udp": - cl, err = dns.NewUDPClient(nsurl.Host) - case "tcp": - cl, err = dns.NewTCPClient(nsurl.Host) - case "https": - ip := net.ParseIP(iphost) - if ip != nil { - if len(port) == 0 { - port = "853" - } - cl, err = dns.NewDoTClient(iphost+":"+port, opts.insecure) - } else { - cl, err = dns.NewDoHClient(ns, opts.insecure) - } - default: - log.Fatalf("! createDNSClient: unknown scheme %q", nsurl.Scheme) - } - if err != nil { - log.Fatal("! createDNSClient: " + err.Error()) - } - - return cl -} - func populateQueries(cr *libnet.ResolvConf, qname string) (queries []string) { ndots := 0 @@ -236,7 +186,10 @@ func main() { if len(opts.nameserver) == 0 { cl = systemResolver } else { - cl = createDNSClient(opts) + cl, err = dns.NewClient(opts.nameserver, opts.insecure) + if err != nil { + log.Fatal(err) + } } queries := populateQueries(rc, opts.qname) |
