1.1.1修复
This commit is contained in:
38
.trae/documents/修复DNSSEC状态显示问题.md
Normal file
38
.trae/documents/修复DNSSEC状态显示问题.md
Normal 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, // 这是关键字段,确保返回正确的启用状态
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user