Skip to content

Commit 40587b6

Browse files
committed
feat: all dns client support skip-cert-verify params
1 parent 85e6d25 commit 40587b6

3 files changed

Lines changed: 17 additions & 8 deletions

File tree

dns/client.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ func (c *client) ExchangeContext(ctx context.Context, m *D.Msg) (*D.Msg, error)
108108

109109
func (c *client) ResetConnection() {}
110110

111-
func newClient(addr string, resolver *Resolver, netType string, proxyAdapter C.ProxyAdapter, proxyName string) *client {
111+
func newClient(addr string, resolver *Resolver, netType string, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *client {
112112
host, port, _ := net.SplitHostPort(addr)
113-
return &client{
113+
c := &client{
114114
Client: &D.Client{
115115
Net: netType,
116116
TLSConfig: &tls.Config{
@@ -123,4 +123,8 @@ func newClient(addr string, resolver *Resolver, netType string, proxyAdapter C.P
123123
host: host,
124124
dialer: newDNSDialer(resolver, proxyAdapter, proxyName),
125125
}
126+
if params["skip-cert-verify"] == "true" {
127+
c.TLSConfig.InsecureSkipVerify = true
128+
}
129+
return c
126130
}

dns/doq.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,16 @@ type dnsOverQUIC struct {
6161
bytesPool *sync.Pool
6262
bytesPoolGuard sync.Mutex
6363

64-
addr string
65-
dialer *dnsDialer
64+
addr string
65+
dialer *dnsDialer
66+
skipCertVerify bool
6667
}
6768

6869
// type check
6970
var _ dnsClient = (*dnsOverQUIC)(nil)
7071

7172
// newDoQ returns the DNS-over-QUIC Upstream.
72-
func newDoQ(addr string, resolver *Resolver, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverQUIC {
73+
func newDoQ(addr string, resolver *Resolver, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverQUIC {
7374
doq := &dnsOverQUIC{
7475
addr: addr,
7576
dialer: newDNSDialer(resolver, proxyAdapter, proxyName),
@@ -79,6 +80,10 @@ func newDoQ(addr string, resolver *Resolver, proxyAdapter C.ProxyAdapter, proxyN
7980
},
8081
}
8182

83+
if params["skip-cert-verify"] == "true" {
84+
doq.skipCertVerify = true
85+
}
86+
8287
runtime.SetFinalizer(doq, (*dnsOverQUIC).Close)
8388
return doq
8489
}
@@ -329,7 +334,7 @@ func (doq *dnsOverQUIC) openConnection(ctx context.Context) (conn quic.Connectio
329334
tlsConfig := ca.GetGlobalTLSConfig(
330335
&tls.Config{
331336
ServerName: host,
332-
InsecureSkipVerify: false,
337+
InsecureSkipVerify: doq.skipCertVerify,
333338
NextProtos: []string{
334339
NextProtoDQ,
335340
},

dns/util.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ func transform(servers []NameServer, resolver *Resolver) []dnsClient {
101101
case "rcode":
102102
c = newRCodeClient(s.Addr)
103103
case "quic":
104-
c = newDoQ(s.Addr, resolver, s.ProxyAdapter, s.ProxyName)
104+
c = newDoQ(s.Addr, resolver, s.Params, s.ProxyAdapter, s.ProxyName)
105105
default:
106-
c = newClient(s.Addr, resolver, s.Net, s.ProxyAdapter, s.ProxyName)
106+
c = newClient(s.Addr, resolver, s.Net, s.Params, s.ProxyAdapter, s.ProxyName)
107107
}
108108

109109
c = warpClientWithEdns0Subnet(c, s.Params)

0 commit comments

Comments
 (0)