mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-12-19 16:30:07 +08:00
feat: all dns client support skip-cert-verify params
Some checks are pending
Test / test (1.20, macos-13) (push) Waiting to run
Test / test (1.20, macos-latest) (push) Waiting to run
Test / test (1.20, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.20, ubuntu-latest) (push) Waiting to run
Test / test (1.20, windows-latest) (push) Waiting to run
Test / test (1.21, macos-13) (push) Waiting to run
Test / test (1.21, macos-latest) (push) Waiting to run
Test / test (1.21, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.21, ubuntu-latest) (push) Waiting to run
Test / test (1.21, windows-latest) (push) Waiting to run
Test / test (1.22, macos-13) (push) Waiting to run
Test / test (1.22, macos-latest) (push) Waiting to run
Test / test (1.22, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.22, ubuntu-latest) (push) Waiting to run
Test / test (1.22, windows-latest) (push) Waiting to run
Test / test (1.23, macos-13) (push) Waiting to run
Test / test (1.23, macos-latest) (push) Waiting to run
Test / test (1.23, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.23, ubuntu-latest) (push) Waiting to run
Test / test (1.23, windows-latest) (push) Waiting to run
Test / test (1.24, macos-13) (push) Waiting to run
Test / test (1.24, macos-latest) (push) Waiting to run
Test / test (1.24, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.24, ubuntu-latest) (push) Waiting to run
Test / test (1.24, windows-latest) (push) Waiting to run
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
Some checks are pending
Test / test (1.20, macos-13) (push) Waiting to run
Test / test (1.20, macos-latest) (push) Waiting to run
Test / test (1.20, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.20, ubuntu-latest) (push) Waiting to run
Test / test (1.20, windows-latest) (push) Waiting to run
Test / test (1.21, macos-13) (push) Waiting to run
Test / test (1.21, macos-latest) (push) Waiting to run
Test / test (1.21, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.21, ubuntu-latest) (push) Waiting to run
Test / test (1.21, windows-latest) (push) Waiting to run
Test / test (1.22, macos-13) (push) Waiting to run
Test / test (1.22, macos-latest) (push) Waiting to run
Test / test (1.22, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.22, ubuntu-latest) (push) Waiting to run
Test / test (1.22, windows-latest) (push) Waiting to run
Test / test (1.23, macos-13) (push) Waiting to run
Test / test (1.23, macos-latest) (push) Waiting to run
Test / test (1.23, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.23, ubuntu-latest) (push) Waiting to run
Test / test (1.23, windows-latest) (push) Waiting to run
Test / test (1.24, macos-13) (push) Waiting to run
Test / test (1.24, macos-latest) (push) Waiting to run
Test / test (1.24, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.24, ubuntu-latest) (push) Waiting to run
Test / test (1.24, windows-latest) (push) Waiting to run
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
This commit is contained in:
parent
85e6d25de5
commit
40587b62b8
@ -108,9 +108,9 @@ func (c *client) ExchangeContext(ctx context.Context, m *D.Msg) (*D.Msg, error)
|
|||||||
|
|
||||||
func (c *client) ResetConnection() {}
|
func (c *client) ResetConnection() {}
|
||||||
|
|
||||||
func newClient(addr string, resolver *Resolver, netType string, proxyAdapter C.ProxyAdapter, proxyName string) *client {
|
func newClient(addr string, resolver *Resolver, netType string, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *client {
|
||||||
host, port, _ := net.SplitHostPort(addr)
|
host, port, _ := net.SplitHostPort(addr)
|
||||||
return &client{
|
c := &client{
|
||||||
Client: &D.Client{
|
Client: &D.Client{
|
||||||
Net: netType,
|
Net: netType,
|
||||||
TLSConfig: &tls.Config{
|
TLSConfig: &tls.Config{
|
||||||
@ -123,4 +123,8 @@ func newClient(addr string, resolver *Resolver, netType string, proxyAdapter C.P
|
|||||||
host: host,
|
host: host,
|
||||||
dialer: newDNSDialer(resolver, proxyAdapter, proxyName),
|
dialer: newDNSDialer(resolver, proxyAdapter, proxyName),
|
||||||
}
|
}
|
||||||
|
if params["skip-cert-verify"] == "true" {
|
||||||
|
c.TLSConfig.InsecureSkipVerify = true
|
||||||
|
}
|
||||||
|
return c
|
||||||
}
|
}
|
||||||
|
|||||||
13
dns/doq.go
13
dns/doq.go
@ -61,15 +61,16 @@ type dnsOverQUIC struct {
|
|||||||
bytesPool *sync.Pool
|
bytesPool *sync.Pool
|
||||||
bytesPoolGuard sync.Mutex
|
bytesPoolGuard sync.Mutex
|
||||||
|
|
||||||
addr string
|
addr string
|
||||||
dialer *dnsDialer
|
dialer *dnsDialer
|
||||||
|
skipCertVerify bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// type check
|
// type check
|
||||||
var _ dnsClient = (*dnsOverQUIC)(nil)
|
var _ dnsClient = (*dnsOverQUIC)(nil)
|
||||||
|
|
||||||
// newDoQ returns the DNS-over-QUIC Upstream.
|
// newDoQ returns the DNS-over-QUIC Upstream.
|
||||||
func newDoQ(addr string, resolver *Resolver, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverQUIC {
|
func newDoQ(addr string, resolver *Resolver, params map[string]string, proxyAdapter C.ProxyAdapter, proxyName string) *dnsOverQUIC {
|
||||||
doq := &dnsOverQUIC{
|
doq := &dnsOverQUIC{
|
||||||
addr: addr,
|
addr: addr,
|
||||||
dialer: newDNSDialer(resolver, proxyAdapter, proxyName),
|
dialer: newDNSDialer(resolver, proxyAdapter, proxyName),
|
||||||
@ -79,6 +80,10 @@ func newDoQ(addr string, resolver *Resolver, proxyAdapter C.ProxyAdapter, proxyN
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if params["skip-cert-verify"] == "true" {
|
||||||
|
doq.skipCertVerify = true
|
||||||
|
}
|
||||||
|
|
||||||
runtime.SetFinalizer(doq, (*dnsOverQUIC).Close)
|
runtime.SetFinalizer(doq, (*dnsOverQUIC).Close)
|
||||||
return doq
|
return doq
|
||||||
}
|
}
|
||||||
@ -329,7 +334,7 @@ func (doq *dnsOverQUIC) openConnection(ctx context.Context) (conn quic.Connectio
|
|||||||
tlsConfig := ca.GetGlobalTLSConfig(
|
tlsConfig := ca.GetGlobalTLSConfig(
|
||||||
&tls.Config{
|
&tls.Config{
|
||||||
ServerName: host,
|
ServerName: host,
|
||||||
InsecureSkipVerify: false,
|
InsecureSkipVerify: doq.skipCertVerify,
|
||||||
NextProtos: []string{
|
NextProtos: []string{
|
||||||
NextProtoDQ,
|
NextProtoDQ,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -101,9 +101,9 @@ func transform(servers []NameServer, resolver *Resolver) []dnsClient {
|
|||||||
case "rcode":
|
case "rcode":
|
||||||
c = newRCodeClient(s.Addr)
|
c = newRCodeClient(s.Addr)
|
||||||
case "quic":
|
case "quic":
|
||||||
c = newDoQ(s.Addr, resolver, s.ProxyAdapter, s.ProxyName)
|
c = newDoQ(s.Addr, resolver, s.Params, s.ProxyAdapter, s.ProxyName)
|
||||||
default:
|
default:
|
||||||
c = newClient(s.Addr, resolver, s.Net, s.ProxyAdapter, s.ProxyName)
|
c = newClient(s.Addr, resolver, s.Net, s.Params, s.ProxyAdapter, s.ProxyName)
|
||||||
}
|
}
|
||||||
|
|
||||||
c = warpClientWithEdns0Subnet(c, s.Params)
|
c = warpClientWithEdns0Subnet(c, s.Params)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user