aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-04-12 23:20:47 +0700
committerShulhan <ms@kilabit.info>2022-04-12 23:20:47 +0700
commitbb7ec2c3667a45f9a534b3f568cb5148f828a1a9 (patch)
tree5cd39a13b0281cf855c946d8bc63da71f2fc8e49 /cmd
parent9e752edba9bcedfe1c1c3db98a5bc9778f220d2f (diff)
downloadrescached-bb7ec2c3667a45f9a534b3f568cb5148f828a1a9.tar.xz
cmd/resolver: use dns.NewClient to create new client
Diffstat (limited to 'cmd')
-rw-r--r--cmd/resolver/main.go55
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)