From 58c4d129d8d03a05c9fd93daae4df05a37e2c57a Mon Sep 17 00:00:00 2001 From: Adrian Milian Date: Tue, 12 May 2026 13:06:09 -0400 Subject: [PATCH] chore: upgrade hickory-resolver dependency to latest version --- Cargo.toml | 2 +- src/resolver/sip_resolver.rs | 28 ++++++++++++++++------------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 530da49..202cef1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ rand = { version = "0.10.1" } md-5 = "0.11.0" sha2 = "0.11.0" get_if_addrs = "0.5.3" -hickory-resolver = { version = "0.25.2", features = [ +hickory-resolver = { version = "0.26.1", features = [ "system-config", "tokio", ], optional = true } diff --git a/src/resolver/sip_resolver.rs b/src/resolver/sip_resolver.rs index 8439360..5577735 100644 --- a/src/resolver/sip_resolver.rs +++ b/src/resolver/sip_resolver.rs @@ -1,4 +1,5 @@ use crate::sip::{Domain, Port, Transport}; +use hickory_resolver::proto::rr::RData; use hickory_resolver::TokioResolver; use rand::RngExt; use std::net::IpAddr; @@ -26,8 +27,9 @@ impl Default for SipResolver { impl SipResolver { pub fn new() -> Self { let resolver = TokioResolver::builder_tokio() - .expect("Unexpected error creating DNS resolver") - .build(); + .expect("Error reading system config to build DNS resolver") + .build() + .expect("Error building DNS resolver"); Self { resolver: Arc::new(resolver), } @@ -68,16 +70,18 @@ impl LookupSource for HickorySource { match self.0.srv_lookup(name).await { Ok(records) => { let mut res = Vec::new(); - for r in records { - let target = r.target().to_string(); - // Remove trailing dot - let target = target.trim_end_matches('.').to_string(); - res.push(SrvRecord { - target, - port: r.port(), - priority: r.priority(), - weight: r.weight(), - }); + for r in records.message().all_sections() { + if let RData::SRV(srv) = &r.data { + let target = srv.target.to_string(); + // Remove trailing dot + let target = target.trim_end_matches('.').to_string(); + res.push(SrvRecord { + target, + port: srv.port, + priority: srv.priority, + weight: srv.weight, + }); + } } Ok(res) }