Browse Source

DNS DoH h2c Remote: Add `verifyPeerCertInNames` "fromMitm" support

https://github.com/XTLS/Xray-core/issues/4313#issuecomment-2645838663
RPRX 8 months ago
parent
commit
613c63b165
1 changed files with 6 additions and 1 deletions
  1. 6 1
      app/dns/nameserver_doh.go

+ 6 - 1
app/dns/nameserver_doh.go

@@ -54,7 +54,12 @@ func NewDoHNameServer(url *url.URL, dispatcher routing.Dispatcher, queryStrategy
 		if err != nil {
 		if err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
-		link, err := s.dispatcher.Dispatch(toDnsContext(ctx, s.dohURL), dest)
+		dnsCtx := toDnsContext(ctx, s.dohURL)
+		if h2c {
+			dnsCtx = session.ContextWithMitmAlpn11(dnsCtx, false) // for insurance
+			dnsCtx = session.ContextWithMitmServerName(dnsCtx, url.Hostname())
+		}
+		link, err := s.dispatcher.Dispatch(dnsCtx, dest)
 		select {
 		select {
 		case <-ctx.Done():
 		case <-ctx.Done():
 			return nil, ctx.Err()
 			return nil, ctx.Err()