chore(dns): trim the resolver list and drop "min" from the table headers

Five entries leave `DNS_AVAILABILITY_SERVERS`: `Alternate DNS`, `Alternate DNS 2`,
`Quad9 (UN 2)`, `Level 3 (alt)`, `Level 3 2 (alt)`. The four Level 3 addresses stay
as one group — `209.244.0.4` carried the name "Level 3 2", so the table showed the
same operator twice; it is "Level 3" now and the group numbers its four endpoints
itself. 54 UDP rows become 49 and 125 servers become 120, so both count assertions
in `config.rs` move with them.

The three latency columns drop the word from their headers — `DoH min` → `DoH`, and
so on in all four languages: the cell holds a latency, so the word said nothing new,
and `DoH`/`DoT`/`UDP` are protocol tokens that stay Latin in every locale (rule 4).

`DNS_UDP_SERVERS` keeps its entries: that list feeds test 2 through
`probe/domains.rs`, and the removal was about the resolvers test 1 probes.

Verified: `cargo test --workspace` (188 + 64 + 2) and
`cargo clippy --workspace --all-targets` (0 warnings). A live run reports
`DoH: 37 | DoT: 34 | UDP: 49`, its header reads `Провайдер │ DoH │ DoT │ UDP │
Реальный UDP резолвер │ Подмена`, and the Level 3 rows are `Level 3`, `Level 3 #2`,
`Level 3 #3`, `Level 3 #4`.
This commit is contained in:
Kirill Minovsky 2026-09-18 23:16:08 +03:00
parent 4ca0262ea3
commit 9c55abd8bb
6 changed files with 16 additions and 21 deletions

View file

@ -180,16 +180,12 @@ DNS_AVAILABILITY_SERVERS:
- ["45.155.204.190", "Geohide", "udp"]
- ["83.220.169.155", "Comss.one", "udp"]
- ["212.109.195.93", "Comss.one", "udp"]
- ["76.76.19.19", "Alternate DNS", "udp"]
- ["76.223.122.150", "Alternate DNS 2", "udp"]
- ["8.26.56.26", "Comodo", "udp"]
- ["8.20.247.20", "Comodo 2", "udp"]
- ["84.200.69.80", "DNS Watch", "udp"]
- ["84.200.70.40", "DNS Watch 2", "udp"]
- ["209.244.0.3", "Level 3", "udp"]
- ["209.244.0.4", "Level 3 2", "udp"]
- ["209.224.0.3", "Level 3 (alt)", "udp"]
- ["209.224.0.4", "Level 3 2 (alt)", "udp"]
- ["209.244.0.4", "Level 3", "udp"]
# Тот же оператор (AS3356, Lumen) по классическим адресам 4.2.2.x:
# a/b.resolvers.level3.net. Публичных DoH/DoT у него нет — только 53/udp.
- ["4.2.2.1", "Level 3", "udp"]
@ -197,7 +193,6 @@ DNS_AVAILABILITY_SERVERS:
# First Colo (AS44066, DE), resolver1/resolver2.fcint.de. Тоже только 53/udp.
- ["212.224.71.71", "First Colo", "udp"]
- ["79.133.62.62", "First Colo", "udp"]
- ["149.112.112.10", "Quad9 (UN 2)", "udp"]
- ["77.88.8.88", "Yandex (Safe)", "udp"]
- ["77.88.8.2", "Yandex (Safe 2)", "udp"]

View file

@ -1104,10 +1104,10 @@ mod tests {
assert_eq!(cfg.dns_udp_servers[0], vec!["8.8.8.8", "Google"]);
assert_eq!(cfg.dns_availability_domains, vec!["vk.ru", "gosuslugi.ru"]);
let servers = cfg.availability_servers();
assert_eq!(servers.iter().filter(|s| s.kind == "udp").count(), 54);
assert_eq!(servers.iter().filter(|s| s.kind == "udp").count(), 49);
assert_eq!(servers.iter().filter(|s| s.kind == "doh_wire").count(), 37);
assert_eq!(servers.iter().filter(|s| s.kind == "dot").count(), 34);
assert_eq!(servers.len(), 125);
assert_eq!(servers.len(), 120);
assert_eq!(servers[0].addr, "94.140.14.14");
assert_eq!(servers.last().map(|s| s.kind.as_str()), Some("dot"));
assert_eq!(cfg.telegram_dc_list().len(), 5);
@ -1176,6 +1176,6 @@ mod tests {
.count();
assert_eq!(burst.len(), shipped_burst, "every shipped burst target survives cleaning");
let cfg = AppConfig::from_yaml_str(EMBEDDED_CONFIG_YML);
assert_eq!(cfg.availability_servers().len(), 125);
assert_eq!(cfg.availability_servers().len(), 120);
}
}

View file

@ -112,9 +112,9 @@ pub(crate) fn messages() -> Messages {
doh_endpoints: "DoH endpoints",
dot_endpoints: "DoT endpoints",
udp_endpoints: "UDP endpoints",
doh_min: "DoH min",
dot_min: "DoT min",
udp_min: "UDP min",
doh_min: "DoH",
dot_min: "DoT",
udp_min: "UDP",
real_udp_resolver: "Real UDP resolver",
spoofing: "Spoofing",
timeout_label: "timeout",

View file

@ -111,9 +111,9 @@ pub(crate) fn messages() -> Messages {
doh_endpoints: "Endpoint haye DoH",
dot_endpoints: "Endpoint haye DoT",
udp_endpoints: "Endpoint haye UDP",
doh_min: "Hadaghal-e DoH",
dot_min: "Hadaghal-e DoT",
udp_min: "Hadaghal-e UDP",
doh_min: "DoH",
dot_min: "DoT",
udp_min: "UDP",
real_udp_resolver: "Resolver-e vaghe'i-e UDP",
spoofing: "Ja'l",
timeout_label: "mohlat",

View file

@ -112,9 +112,9 @@ pub(crate) fn messages() -> Messages {
doh_endpoints: "DoH эндпоинты",
dot_endpoints: "DoT эндпоинты",
udp_endpoints: "UDP эндпоинты",
doh_min: "DoH мин",
dot_min: "DoT мин",
udp_min: "UDP мин",
doh_min: "DoH",
dot_min: "DoT",
udp_min: "UDP",
real_udp_resolver: "Реальный UDP резолвер",
spoofing: "Подмена",
timeout_label: "таймаут",

View file

@ -108,9 +108,9 @@ pub(crate) fn messages() -> Messages {
doh_endpoints: "DoH 端点",
dot_endpoints: "DoT 端点",
udp_endpoints: "UDP 端点",
doh_min: "DoH 最小",
dot_min: "DoT 最小",
udp_min: "UDP 最小",
doh_min: "DoH",
dot_min: "DoT",
udp_min: "UDP",
real_udp_resolver: "真实 UDP 解析器",
spoofing: "劫持/篡改",
timeout_label: "超时",