1.1.1修复

This commit is contained in:
Alex Yang
2025-12-19 12:44:57 +08:00
parent b576996ede
commit 1f3f5708a3
72 changed files with 3476 additions and 83 deletions

View File

@@ -0,0 +1,38 @@
## 问题分析
1. **配置正确**:配置文件中`enableDNSSEC`设置为`true`,但卡片显示"已禁用"
2. **代码问题**:在`dns/server.go``GetStats`函数中,返回的`Stats`结构体缺少了DNSSEC相关字段
3. **API行为**当API访问DNSSEC相关字段时由于没有从`GetStats`函数返回,它们的值都是默认值(`DNSSECEnabled`默认值为`false`
4. **前端显示**前端卡片从API获取`DNSSECEnabled`值,因此显示"已禁用"
## 解决方案
修改`dns/server.go`中的`GetStats`函数,确保返回的`Stats`副本包含所有DNSSEC相关字段包括`DNSSECEnabled``DNSSECQueries``DNSSECSuccess``DNSSECFailed`
## 修复步骤
1. 打开`/root/dns/dns/server.go`文件
2. 找到`GetStats`函数大约在第960行
3. 修改返回的`Stats`结构体添加缺失的DNSSEC相关字段
4. 确保所有DNSSEC字段都从原始`Stats`结构体复制到返回的副本中
## 预期结果
修复后API将正确返回DNSSEC启用状态前端卡片将显示"已启用",与配置文件中的设置一致。
## 代码修改点
```go
// 返回统计信息的副本
return &Stats{
Queries: s.stats.Queries,
Blocked: s.stats.Blocked,
Allowed: s.stats.Allowed,
Errors: s.stats.Errors,
LastQuery: s.stats.LastQuery,
AvgResponseTime: s.stats.AvgResponseTime,
TotalResponseTime: s.stats.TotalResponseTime,
QueryTypes: queryTypesCopy,
SourceIPs: sourceIPsCopy,
CpuUsage: s.stats.CpuUsage,
DNSSECQueries: s.stats.DNSSECQueries,
DNSSECSuccess: s.stats.DNSSECSuccess,
DNSSECFailed: s.stats.DNSSECFailed,
DNSSECEnabled: s.stats.DNSSECEnabled, // 这是关键字段,确保返回正确的启用状态
}
```