From 6a1cf6b82b74cf7dc1e5ee9f2d3ed0db3e5b782a Mon Sep 17 00:00:00 2001 From: Lowder Date: Mon, 7 Sep 2026 17:50:39 +0500 Subject: [PATCH] chore: bump hickory resolver --- Cargo.lock | Bin 128576 -> 124631 bytes querying/Cargo.toml | 2 +- querying/src/lists.rs | 29 ++++++++++++++++++++--------- querying/src/resolver.rs | 2 +- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3804e8cc69daef805ea8d1ca16d75ae51f433326..f7e497a3061dbe0e93d15651d35abbc8d0566fe0 100644 GIT binary patch literal 124631 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 z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* L1`HT5VBj|}_D=u- diff --git a/querying/Cargo.toml b/querying/Cargo.toml index 33de5d0..fd69520 100644 --- a/querying/Cargo.toml +++ b/querying/Cargo.toml @@ -13,7 +13,7 @@ reqwest = { workspace = true } csv = "1.4.0" maxminddb = "0.27.3" log = { workspace = true } -hickory-resolver = { version = "0.26.0-beta.3", features = ["tokio", "webpki-roots", "https-ring"] } +hickory-resolver = { version = "0.26.0", features = ["tokio", "webpki-roots", "https-ring"] } thiserror = "2.0.18" url = "2.5.8" indicatif = "0.18.4" diff --git a/querying/src/lists.rs b/querying/src/lists.rs index a925f62..e171baa 100644 --- a/querying/src/lists.rs +++ b/querying/src/lists.rs @@ -64,14 +64,14 @@ impl CdnList { let record: NetworkRecord = result?; trie.insert(record.cidr, record); } - let (v4, v6) = trie.ip_count(); - info!("ip count: v4={}, v6={}", v4, v6); + let count = trie.ip_count(); + info!("ip count: v4={}, v6={:?}", count.ipv4, count.ipv6); self.trie = trie; Ok(()) } - pub fn v4_count(&self) -> u32 { - self.trie.ip_count().0 + pub fn v4_count(&self) -> u64 { + self.trie.ip_count().ipv4 } pub fn contains(&self, ip: &IpAddr) -> Option { @@ -141,8 +141,8 @@ impl RuBlacklist { IpNet::from_str(&net).map_err(|e| Error::new(io::ErrorKind::InvalidData, e))?; ip_trie.insert(net, ()); } - let (v4, v6) = ip_trie.ip_count(); - info!("ip count: v4={}, v6={}", v4, v6); + let count = ip_trie.ip_count(); + info!("ip count: v4={}, v6={:?}", count.ipv4, count.ipv6); self.ip_trie = ip_trie; let mut blocked_domains = Vec::new(); @@ -160,8 +160,8 @@ impl RuBlacklist { Ok(()) } - pub fn v4_count(&self) -> u32 { - self.ip_trie.ip_count().0 + pub fn v4_count(&self) -> u64 { + self.ip_trie.ip_count().ipv4 } pub fn contains_ip(&self, ip: &IpAddr) -> Option { @@ -219,9 +219,20 @@ impl Updatable for RuBlacklist { #[cfg(test)] mod tests { - use super::RuBlacklist; + use super::{CdnList, RuBlacklist}; use std::io::Cursor; + #[test] + fn ipv4_counts_can_represent_the_entire_address_space() { + let cdn = CdnList::load(Cursor::new("provider,cidr,region\nexample,0.0.0.0/0,\n")).unwrap(); + let blacklist = + RuBlacklist::load(Cursor::new("0.0.0.0/0\n"), Cursor::new(""), Cursor::new("")) + .unwrap(); + + assert_eq!(cdn.v4_count(), 1_u64 << 32); + assert_eq!(blacklist.v4_count(), 1_u64 << 32); + } + #[test] fn domain_lookup_matches_subdomains_on_label_boundaries() { let list = RuBlacklist::load( diff --git a/querying/src/resolver.rs b/querying/src/resolver.rs index 9887b99..8b9284a 100644 --- a/querying/src/resolver.rs +++ b/querying/src/resolver.rs @@ -77,7 +77,7 @@ impl Resolver { .map_err(map_resolve_error)? .answers() .iter() - .filter_map(|record| match record.data() { + .filter_map(|record| match &record.data { RData::PTR(ptr) => Some(ptr.to_string().trim_end_matches('.').to_string()), _ => None, })