修复nil导致查询返回问题

This commit is contained in:
Alex Yang
2026-04-04 12:16:48 +08:00
parent 67c7332f75
commit 429b2331fb
2 changed files with 23 additions and 13 deletions
+5 -5
View File
@@ -1,6 +1,6 @@
CGO_ENABLED=1 export CGO_ENABLED=1
GOOS=linux export GOOS=linux
GOARCH=amd64 export GOARCH=amd64
CC=gcc export CC=gcc
service dns-server stop && go build -o dns-server main.go && service dns-server start #service dns-server stop && go build -o dns-server main.go && service dns-server start
+10
View File
@@ -892,6 +892,16 @@ func (s *Server) handleUpstreamRequest(w dns.ResponseWriter, r *dns.Msg, startTi
// 写入响应给客户端 // 写入响应给客户端
w.WriteMsg(response) w.WriteMsg(response)
} else {
// response 为 nil,说明上游 DNS 查询失败
// 返回服务器失败错误给客户端
logger.Debug("上游 DNS 查询失败,返回 SERVFAIL", "domain", reqInfo.domain)
errorResponse := new(dns.Msg)
errorResponse.SetReply(r)
// 设置递归可用标志
errorResponse.RecursionAvailable = true
errorResponse.SetRcode(r, dns.RcodeServerFailure)
w.WriteMsg(errorResponse)
} }
// 使用上游服务器的实际响应时间(转换为毫秒) // 使用上游服务器的实际响应时间(转换为毫秒)