From d1b0d1f13304e5adad5ce9ea594c331b25ecc4b7 Mon Sep 17 00:00:00 2001 From: Bot Git Date: Tue, 2 Nov 2021 09:03:41 +0800 Subject: [PATCH] fix ipv6 doh-ip --- network/dns_resolver.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/network/dns_resolver.go b/network/dns_resolver.go index 23a4c37..424c7ae 100644 --- a/network/dns_resolver.go +++ b/network/dns_resolver.go @@ -1,6 +1,8 @@ package network import ( + "fmt" + "net" "net/http" "sync" "time" @@ -83,8 +85,13 @@ func (d *dnsResolver) LookupAAAA(hostname string) []string { return ips } -func newDNSResolver(hostname string, httpClient *http.Client) *dnsResolver { - return &dnsResolver{ +func newDNSResolver(hostname string, httpClient *http.Client) (ret *dnsResolver) { + if net.ParseIP(hostname).To4() == nil { + // the hostname is an IPv6 address + hostname = fmt.Sprintf("[%s]", hostname) + } + + ret = &dnsResolver{ resolver: doh.Resolver{ Host: hostname, Class: doh.IN, @@ -92,4 +99,6 @@ func newDNSResolver(hostname string, httpClient *http.Client) *dnsResolver { }, cache: map[string]dnsResolverCacheEntry{}, } + + return }