diff --git a/dns/client.go b/dns/client.go index b3d24f14..6362fe7e 100644 --- a/dns/client.go +++ b/dns/client.go @@ -7,6 +7,7 @@ import ( "strings" "time" + "github.com/metacubex/mihomo/component/resolver" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" @@ -87,7 +88,7 @@ func (c *client) ExchangeContext(ctx context.Context, m *D.Msg) (*D.Msg, error) func (c *client) ResetConnection() {} -func newClient(addr string, resolver *Resolver, netType string, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *client { +func newClient(addr string, resolver resolver.Resolver, netType string, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *client { host, port, _ := net.SplitHostPort(addr) c := &client{ port: port, diff --git a/dns/doh.go b/dns/doh.go index f7c6ec7f..5e13e044 100644 --- a/dns/doh.go +++ b/dns/doh.go @@ -14,6 +14,7 @@ import ( "time" "github.com/metacubex/mihomo/component/ca" + "github.com/metacubex/mihomo/component/resolver" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" @@ -74,7 +75,7 @@ type dnsOverHTTPS struct { var _ dnsClient = (*dnsOverHTTPS)(nil) // newDoH returns the DNS-over-HTTPS Upstream. -func newDoHClient(urlString string, r *Resolver, preferH3 bool, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) dnsClient { +func newDoHClient(urlString string, r resolver.Resolver, preferH3 bool, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) dnsClient { u, _ := url.Parse(urlString) httpVersions := DefaultHTTPVersions if preferH3 { diff --git a/dns/doq.go b/dns/doq.go index 02558321..ff41c17f 100644 --- a/dns/doq.go +++ b/dns/doq.go @@ -15,6 +15,7 @@ import ( "github.com/metacubex/mihomo/common/contextutils" "github.com/metacubex/mihomo/common/pool" "github.com/metacubex/mihomo/component/ca" + "github.com/metacubex/mihomo/component/resolver" C "github.com/metacubex/mihomo/constant" "github.com/metacubex/mihomo/log" @@ -67,7 +68,7 @@ type dnsOverQUIC struct { var _ dnsClient = (*dnsOverQUIC)(nil) // newDoQ returns the DNS-over-QUIC Upstream. -func newDoQ(addr string, resolver *Resolver, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverQUIC { +func newDoQ(addr string, resolver resolver.Resolver, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverQUIC { doq := &dnsOverQUIC{ addr: addr, dialer: newDNSDialer(resolver, proxyAdapter, proxyName), diff --git a/dns/dot.go b/dns/dot.go index 57731822..a386b7cb 100644 --- a/dns/dot.go +++ b/dns/dot.go @@ -3,6 +3,7 @@ package dns import ( "context" "fmt" + "github.com/metacubex/mihomo/component/resolver" "net" "runtime" "sync" @@ -159,7 +160,7 @@ func (t *dnsOverTLS) Close() error { return nil } -func newDoTClient(addr string, resolver *Resolver, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverTLS { +func newDoTClient(addr string, resolver resolver.Resolver, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverTLS { host, port, _ := net.SplitHostPort(addr) c := &dnsOverTLS{ port: port, diff --git a/dns/util.go b/dns/util.go index 80377890..fef93961 100644 --- a/dns/util.go +++ b/dns/util.go @@ -113,7 +113,7 @@ func isIPRequest(q D.Question) bool { return q.Qclass == D.ClassINET && (q.Qtype == D.TypeA || q.Qtype == D.TypeAAAA || q.Qtype == D.TypeCNAME) } -func transform(servers []NameServer, resolver *Resolver) []dnsClient { +func transform(servers []NameServer, resolver resolver.Resolver) []dnsClient { ret := make([]dnsClient, 0, len(servers)) for _, s := range servers { var c dnsClient