diff --git a/Cargo.lock b/Cargo.lock index 654c3b6..400100d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -149,7 +149,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -160,7 +160,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1245,9 +1245,9 @@ dependencies = [ [[package]] name = "dns-lookup" -version = "2.1.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5597a4b7fe5275fc9dcf88ce26326bc8e4cb87d0130f33752d4c5f717793cf" +checksum = "6e39034cee21a2f5bbb66ba0e3689819c4bb5d00382a282006e802a7ffa6c41d" dependencies = [ "cfg-if", "libc", @@ -1348,7 +1348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2317,7 +2317,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2900,7 +2900,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4157,7 +4157,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -4474,7 +4474,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -4648,7 +4648,7 @@ dependencies = [ "getrandom 0.3.4", "once_cell", "rustix 1.1.4", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -5089,7 +5089,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" dependencies = [ "memoffset", "tempfile", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -5666,7 +5666,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2a06bfb..c14cf7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,7 @@ nfq = "0.2" procfs = "0.18" # DNS reverse lookup -dns-lookup = "2.0" +dns-lookup = "3.0" # Process / system nix = { version = "0.31", features = ["process", "user", "signal"] } diff --git a/crates/cfc-daemon/src/dns.rs b/crates/cfc-daemon/src/dns.rs index df74827..432d5f6 100644 --- a/crates/cfc-daemon/src/dns.rs +++ b/crates/cfc-daemon/src/dns.rs @@ -337,6 +337,11 @@ fn evict_if_full(cache: &mut HashMap) { fn forward_confirm(name: &str, ip: IpAddr) -> bool { match dns_lookup::lookup_host(name) { Ok(addrs) => { + // dns-lookup 3.x returns an iterator where 2.x returned a Vec. + // Collected rather than threading the iterator through: this runs + // once per PTR confirmation on the blocking resolver task, and the + // result set is a handful of addresses. + let addrs: Vec = addrs.collect(); let confirmed = addrs_contain(&addrs, ip); if !confirmed { tracing::debug!(