From cfb3cf6cf80aa4c82d5a14ec984cfd8d65f72a07 Mon Sep 17 00:00:00 2001 From: Revertron Date: Sun, 29 Mar 2026 18:55:59 +0200 Subject: [PATCH] Added parsing of bare IPs for forwarders in config. --- src/dns_utils.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/dns_utils.rs b/src/dns_utils.rs index 8e06fc4..9780afc 100644 --- a/src/dns_utils.rs +++ b/src/dns_utils.rs @@ -44,7 +44,19 @@ fn create_server_context(context: Arc>, settings: &Settings) -> A server_context.allow_recursive = true; server_context.resolve_strategy = match settings.dns.forwarders.is_empty() { true => ResolveStrategy::Recursive, - false => ResolveStrategy::Forward { upstreams: settings.dns.forwarders.clone() } + false => { + let upstreams = settings.dns.forwarders.iter().map(|s| { + if s.starts_with("https://") || s.parse::().is_ok() { + s.clone() + } else if let Ok(ip) = s.parse::() { + std::net::SocketAddr::new(ip, 53).to_string() + } else { + warn!("Cannot parse forwarder address: {}", s); + s.clone() + } + }).collect(); + ResolveStrategy::Forward { upstreams } + } }; // Add host filters for host in &settings.dns.hosts {