Files
2026-04-04 12:25:49 +08:00

39 lines
1.4 KiB
Plaintext

--- dns/server.go
+++ dns/server.go
@@ -605,6 +605,8 @@ func (s *Server) checkRequestConditions(w dns.ResponseWriter, r *dns.Msg, startT
if r.RecursionDesired == false {
se := new(dns.Msg)
se.SetReply(r)
+// 设置递归可用标志
+response.RecursionAvailable = true
不再硬编码 RecursionAvailable,使用默认值或上游返回的值
se.SetRcode(r, dns.RcodeRefused)
se)
@@ -1010,6 +1012,8 @@ func (s *Server) handleHostsResponse(w dns.ResponseWriter, r *dns.Msg, ip string
func handleHostsResponse(w dns.ResponseWriter, r *dns.Msg, ip string) {
response := new(dns.Msg)
response.SetReply(r)
+// 设置递归可用标志(因为我们的 DNS 服务器支持递归查询)
+response.RecursionAvailable = true
// 不再硬编码 RecursionAvailable,使用默认值或上游返回的值
if len(r.Question) > 0 {
@@ -1051,6 +1055,8 @@ func (s *Server) handleGFWListResponse(w dns.ResponseWriter, r *dns.Msg, domain
response := new(dns.Msg)
response.SetReply(r)
+// 设置递归可用标志
+response.RecursionAvailable = true
if len(r.Question) > 0 {
:= r.Question[0]
@@ -1082,6 +1088,8 @@ func (s *Server) handleBlockedResponse(w dns.ResponseWriter, r *dns.Msg, domain
response := new(dns.Msg)
response.SetReply(r)
+// 设置递归可用标志
+response.RecursionAvailable = true
// 不再硬编码 RecursionAvailable,使用默认值或上游返回的值
// 获取屏蔽方法配置