feat: try h3 connect DOH, failed will fall back h2; turn on with dns.prefer-h3: true

This commit is contained in:
Skyxim
2022-07-03 21:59:47 +08:00
parent 8eec86232c
commit 59ab2083aa
7 changed files with 82 additions and 16 deletions

View File

@@ -54,12 +54,12 @@ func isIPRequest(q D.Question) bool {
return q.Qclass == D.ClassINET && (q.Qtype == D.TypeA || q.Qtype == D.TypeAAAA)
}
func transform(servers []NameServer, resolver *Resolver) []dnsClient {
func transform(servers []NameServer, resolver *Resolver, preferH3 bool) []dnsClient {
ret := []dnsClient{}
for _, s := range servers {
switch s.Net {
case "https":
ret = append(ret, newDoHClient(s.Addr, resolver, s.ProxyAdapter))
ret = append(ret, newDoHClient(s.Addr, resolver, preferH3, s.ProxyAdapter))
continue
case "dhcp":
ret = append(ret, newDHCPClient(s.Addr))