TRRSkippedReasons¶
这些值在 TRRSkippedReason.h 中定义,并在每个解析的 nsHostRecord 上记录。我们通常将它们用于遥测或确定 TRR 失败的原因。
TRR_UNSET¶
值:0
在尝试解析域名之前,此原因会设置在 nsHostRecord 上。通常我们不应该将此值报告到遥测 - 如果我们这样做,意味着代码中存在错误。
TRR_OK¶
值:1
当我们获得正向 TRR 结果时,会设置此原因。这意味着我们使用 TRR 进行 DNS 解析,HTTPS 请求获得了 200 响应,响应被正确解码为 DNS 数据包,并且该数据包包含相关答案。
TRR_NO_GSERVICE¶
值:2
仅当在尝试为请求计算 TRR 模式时没有 TRR 服务实例时,才会设置此原因。它表示实现中的错误。
TRR_PARENTAL_CONTROL¶
值:3
当我们检测到系统级家长控制已启用时,会设置此原因。在这种情况下,我们将不会对任何请求使用 TRR。
TRR_OFF_EXPLICIT¶
值:4
当用户显式禁用 DNS over HTTPS(通过将 network.trr.mode 设置为 5)时,会设置此原因。在这种情况下,我们将不会对任何请求使用 TRR。
TRR_REQ_MODE_DISABLED¶
值:5
请求的 nsIRequest::TRRMode 设置为 TRR_DISABLED_MODE。对于不应使用 TRR 的请求,通常情况下是这样的,例如 TRRServiceChannel、网络接入点和连接检查、DoHHeuristics 检查、源自 PAC 脚本的请求等。
TRR_MODE_NOT_ENABLED¶
值:6
当 TRRService 未启用时,会设置此原因。我们最终将此报告到遥测的唯一方法是,当请求分派时 TRRService 已启用,但在处理请求时 TRRService 已禁用。
TRR_FAILED¶
值:7
TRR 请求由于未知原因失败。
TRR_MODE_UNHANDLED_DEFAULT¶
值:8
此原因不再使用。此值将来可能会被回收以表示其他含义。
TRR_MODE_UNHANDLED_DISABLED¶
值:9
此原因不再使用。此值将来可能会被回收以表示其他含义。
TRR_DISABLED_FLAG¶
值:10
此原因用于重试失败的连接、在主线程上同步 DNS 解析或来自选择跳过 TRR 的 webextensions 的请求。
TRR_TIMEOUT¶
值:11
TRR 请求超时。
TRR_CHANNEL_DNS_FAIL¶
值:12
当我们无法解析 DNS over HTTPS 服务器的名称时,会设置此原因。
TRR_BROWSER_IS_OFFLINE¶
值:13
当 TRR 请求失败且浏览器脱机(没有活动接口)时,会记录此原因。
TRR_NOT_CONFIRMED¶
值:14
当 TRR 服务尚未确认可以工作时,会记录此原因。仅当启用 Do53 备用时,才会启用确认。
TRR_DID_NOT_MAKE_QUERY¶
值:15
当 TrrLookup 退出时未执行 TRR 查询,会发送此原因。它可能在关闭期间设置,也可能表示实现错误。
TRR_UNKNOWN_CHANNEL_FAILURE¶
值:16
TRR 请求由于未知的通道故障原因而失败。
TRR_HOST_BLOCKED_TEMPORARY¶
值:17
当主机被暂时阻止时,会记录此原因。当先前尝试使用 TRR 解析它失败,但回退到 Do53 成功时,就会发生这种情况。
TRR_SEND_FAILED¶
值:18
对 TRR::SendHTTPRequest 的调用失败。
TRR_NET_RESET¶
值:19
请求失败,因为与 TRR 服务器的连接已重置。
TRR_NET_TIMEOUT¶
值:20
请求失败,因为与 TRR 服务器的连接超时。
TRR_NET_REFUSED¶
值:21
请求失败,因为与 TRR 服务器的连接被拒绝。
TRR_NET_INTERRUPT¶
值:22
请求失败,因为与 TRR 服务器的连接中断。
TRR_NET_INADEQ_SEQURITY¶
值:23
请求失败,因为与 TRR 服务器的连接使用了无效的 TLS 配置。
TRR_NO_ANSWERS¶
值:24
TRR 请求成功,但编码的 DNS 数据包不包含任何答案。
TRR_DECODE_FAILED¶
值:25
TRR 请求成功,但解码 DNS 数据包失败。
TRR_EXCLUDED¶
值:26
当要解析的域名从 TRR 中排除时,会设置此原因,无论是通过 network.trr.excluded-domains 首选项,还是因为它被用户网络的 DNS 后缀覆盖。
TRR_SERVER_RESPONSE_ERR¶
值:27
服务器返回了非 200 代码。
TRR_RCODE_FAIL¶
值:28
解码的 DNS 数据包包含一个与 NOERROR 不同的 rcode。
TRR_NO_CONNECTIVITY¶
值:29
当浏览器没有连接时,会设置此原因。
TRR_NXDOMAIN¶
值:30
当 DNS 响应包含 NXDOMAIN rcode (0x03) 时,会设置此原因。
TRR_REQ_CANCELLED¶
值:31
当请求在完成之前被取消时,会设置此原因。
ODOH_KEY_NOT_USABLE¶
值:32
当我们没有可用的有效 ODoHConfig 时,会设置此原因。
ODOH_UPDATE_KEY_FAILED¶
值:33
当我们无法更新 ODoHConfigs 时,会设置此原因。
ODOH_KEY_NOT_AVAILABLE¶
值:34
由于没有密钥,ODoH 请求超时时,会设置此原因。
ODOH_ENCRYPTION_FAILED¶
值:35
当我们无法加密 DNS 数据包时,会设置此原因。
ODOH_DECRYPTION_FAILED¶
值:36
当我们无法解密 DNS 数据包时,会设置此原因。
TRR_HEURISTIC_TRIPPED_GOOGLE_SAFESEARCH¶
值:37
当 Google 安全搜索启发式触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_YOUTUBE_SAFESEARCH¶
值:38
当 YouTube 安全搜索启发式触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_ZSCALER_CANARY¶
值:39
当 Zscaler Canary 启发式触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_CANARY¶
值:40
当全局 Canary 启发式触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_MODIFIED_ROOTS¶
值:41
当修改后的根证书 (enterprise_roots 证书首选项) 启发式触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_PARENTAL_CONTROLS¶
值:42
当检测到家长控制时,会设置此原因。
TRR_HEURISTIC_TRIPPED_THIRD_PARTY_ROOTS¶
值:43
当第三方根证书启发式触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_ENTERPRISE_POLICY¶
值:44
当企业策略启发式触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_VPN¶
值:45
当启发式被检测到的 VPN 触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_PROXY¶
值:46
当启发式被检测到的代理触发时,会设置此原因。
TRR_HEURISTIC_TRIPPED_NRPT¶
值:47
当启发式被检测到的 NRPT 触发时,会设置此原因。