Skip to content

Commit 66bb521

Browse files
committed
Fix generate DNS
1 parent adb4978 commit 66bb521

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

template/render_dns.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,24 +83,33 @@ func (t *Template) renderDNS(ctx context.Context, metadata M.Metadata, options *
8383
)
8484
if t.DisableTrafficBypass {
8585
localDNSOptions = option.DNSServerOptions{
86-
Tag: DNSLocalTag,
86+
Tag: DNSLocalTag,
87+
Type: C.DNSTypeLegacy,
8788
Options: &option.LegacyDNSServerOptions{
8889
Address: "local",
8990
Strategy: domainStrategyLocal,
9091
},
9192
}
9293
} else {
9394
localDNSOptions = option.DNSServerOptions{
94-
Tag: DNSLocalTag,
95+
Tag: DNSLocalTag,
96+
Type: C.DNSTypeLegacy,
9597
Options: &option.LegacyDNSServerOptions{
9698
Address: dnsLocal,
9799
Detour: directTag,
98100
Strategy: domainStrategyLocal,
99101
},
100102
}
101-
if dnsLocalUrl, err := url.Parse(dnsLocal); err == nil && BM.IsDomainName(dnsLocalUrl.Hostname()) {
102-
defaultDNSOptions.Options.(*option.LegacyDNSServerOptions).AddressResolver = DNSLocalSetupTag
103+
if BM.IsDomainName(dnsLocal) {
103104
localDNSIsDomain = true
105+
} else if dnsLocalUrl, err := url.Parse(dnsLocal); err == nil {
106+
switch dnsLocalUrl.Scheme {
107+
case "tcp", "udp", "tls", "https", "quic", "h3":
108+
localDNSIsDomain = true
109+
}
110+
}
111+
if localDNSIsDomain {
112+
defaultDNSOptions.Options.(*option.LegacyDNSServerOptions).AddressResolver = DNSLocalSetupTag
104113
}
105114
}
106115
if newDNSServers {

0 commit comments

Comments
 (0)