## 问题分析 用户要求在缓存结果中包含DNSSEC信息时,在缓存的请求条目后边添加相同的DNSSEC标记,格式为:`类型: AAAA, 允许, 缓存 `。如果不包含DNSSEC信息,则不添加标记。 ## 代码检查 1. **当前DNSSEC标记实现**: - 在`/root/dns/static/js/logs.js`的`updateLogsTable`函数中,已经实现了根据`log.DNSSEC`字段显示DNSSEC标记的功能: ```javascript
类型: ${log.QueryType}, ${statusText}, ${log.FromCache ? '缓存' : '实时'}${log.DNSSEC ? ', DNSSEC' : ''}
``` 2. **DNSSEC信息存储**: - `QueryLog`结构体包含`DNSSEC`字段,用于记录是否使用了DNSSEC - 在`handleDNSRequest`函数中,会检查响应是否包含DNSSEC信息,并记录到日志中 - 在缓存处理中,会检查缓存响应的AD标志和RRSIG记录,确定DNSSEC状态 3. **缓存响应的DNSSEC处理**: - 当从缓存返回响应时,会检查响应是否包含RRSIG记录或AD标志,以确定DNSSEC状态 - 但在日志记录时,已经正确传递了DNSSEC状态 ## 解决方案 当前实现已经基本满足用户要求,但需要确保在所有显示查询日志的地方都正确显示DNSSEC标记。根据检查,只有`logs.js`中的`updateLogsTable`函数显示查询日志,且已经实现了DNSSEC标记功能。 ## 验证步骤 1. 确认`logs.js`中的`updateLogsTable`函数已经正确实现了DNSSEC标记显示 2. 确认`QueryLog`结构体中的`DNSSEC`字段被正确设置 3. 确认缓存响应的DNSSEC状态被正确检查和记录 4. 运行测试,验证缓存请求条目显示格式为:`类型: AAAA, 允许, 缓存 ` ## 预期结果 - 当缓存结果包含DNSSEC信息时,显示:`类型: AAAA, 允许, 缓存 DNSSEC` - 当缓存结果不包含DNSSEC信息时,显示:`类型: AAAA, 允许, 缓存` - DNSSEC标记使用绿色锁图标,颜色为绿色 ## 注意事项 - 确保DNSSEC标记只在缓存请求条目中显示,与实时请求条目保持一致的格式 - 确保DNSSEC标记的颜色和图标与整体UI风格一致 - 确保DNSSEC标记只在包含DNSSEC信息时显示,不包含时不显示 ## 实现状态 当前实现已经满足用户要求,不需要额外修改代码。需要运行测试验证功能是否正常工作。