diff options
| author | Shulhan <ms@kilabit.info> | 2022-04-12 23:20:47 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-04-12 23:20:47 +0700 |
| commit | bb7ec2c3667a45f9a534b3f568cb5148f828a1a9 (patch) | |
| tree | 5cd39a13b0281cf855c946d8bc63da71f2fc8e49 /cmd/resolver | |
| parent | 9e752edba9bcedfe1c1c3db98a5bc9778f220d2f (diff) | |
| download | rescached-bb7ec2c3667a45f9a534b3f568cb5148f828a1a9.tar.xz | |
cmd/resolver: use dns.NewClient to create new client
Diffstat (limited to 'cmd/resolver')
| -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) |
