update
This commit is contained in:
+10
-14
@@ -1209,17 +1209,13 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg
|
||||
if opt := r.IsEdns0(); opt != nil {
|
||||
// 保留客户端的 UDP 缓冲区大小
|
||||
udpSize = opt.UDPSize()
|
||||
// 移除现有的EDNS记录,以便重新添加
|
||||
for i := range r.Extra {
|
||||
if r.Extra[i] == opt {
|
||||
r.Extra = append(r.Extra[:i], r.Extra[i+1:]...)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 添加EDNS记录,设置适当的UDPSize和DO标志
|
||||
r.SetEdns0(udpSize, doFlag)
|
||||
// 创建请求的副本,避免修改原始请求
|
||||
query := r.Copy()
|
||||
|
||||
// 在副本上添加 EDNS 记录,设置适当的 UDPSize 和 DO 标志
|
||||
query.SetEdns0(udpSize, doFlag)
|
||||
|
||||
// DNSSEC专用服务器列表,从配置中获取
|
||||
dnssecServers := s.config.DNSSECUpstreamDNS
|
||||
@@ -1307,7 +1303,7 @@ logger.Debug("并行查询超时设置", "domain", r.Question[0].Name, "defaultT
|
||||
client.Timeout = defaultTimeout // 使用配置的超时时间
|
||||
|
||||
// 发送请求并获取响应,确保服务器地址包含端口号
|
||||
response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(server))
|
||||
response, rtt, err := client.Exchange(query, normalizeDNSServerAddress(server))
|
||||
responses <- serverResponse{response, rtt, server, err}
|
||||
|
||||
// 将客户端实例放回池中(不重置 Timeout,因为下次使用时会重新设置)
|
||||
@@ -1411,7 +1407,7 @@ logger.Debug("并行查询超时设置", "domain", r.Question[0].Name, "defaultT
|
||||
client.Timeout = defaultTimeout
|
||||
|
||||
// 只向一个服务器发送请求
|
||||
response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(fastestServer))
|
||||
response, rtt, err := client.Exchange(query, normalizeDNSServerAddress(fastestServer))
|
||||
|
||||
// 将客户端实例放回池中
|
||||
s.clientPool.Put(client)
|
||||
@@ -1512,7 +1508,7 @@ logger.Debug("并行查询超时设置", "domain", r.Question[0].Name, "defaultT
|
||||
}
|
||||
|
||||
// 发送请求并获取响应,确保服务器地址包含端口号
|
||||
response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(server))
|
||||
response, rtt, err := client.Exchange(query, normalizeDNSServerAddress(server))
|
||||
responses <- serverResponse{response, rtt, server, err}
|
||||
}(upstream)
|
||||
}
|
||||
@@ -1821,7 +1817,7 @@ logger.Debug("并行查询超时设置", "domain", r.Question[0].Name, "defaultT
|
||||
UDPSize: s.resolver.UDPSize,
|
||||
Timeout: defaultTimeout,
|
||||
}
|
||||
response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(selectedDnssecServer))
|
||||
response, rtt, err := client.Exchange(query, normalizeDNSServerAddress(selectedDnssecServer))
|
||||
resultChan <- struct {
|
||||
response *dns.Msg
|
||||
rtt time.Duration
|
||||
@@ -1924,7 +1920,7 @@ logger.Debug("并行查询超时设置", "domain", r.Question[0].Name, "defaultT
|
||||
UDPSize: s.resolver.UDPSize,
|
||||
Timeout: defaultTimeout, // 使用配置的超时时间
|
||||
}
|
||||
resp, rtt, e := tempResolver.Exchange(r, normalizeDNSServerAddress(localServer))
|
||||
resp, rtt, e := tempResolver.Exchange(query, normalizeDNSServerAddress(localServer))
|
||||
resultChan <- struct {
|
||||
response *dns.Msg
|
||||
rtt time.Duration
|
||||
|
||||
Reference in New Issue
Block a user