diff options
Diffstat (limited to 'src/dns/coredns.rs')
-rw-r--r-- | src/dns/coredns.rs | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/dns/coredns.rs b/src/dns/coredns.rs index 71ca70e..d5b817a 100644 --- a/src/dns/coredns.rs +++ b/src/dns/coredns.rs @@ -17,8 +17,6 @@ use hickory_proto::{ DnsStreamHandle, }; use log::{debug, error, trace, warn}; -use resolv_conf; -use resolv_conf::ScopedIp; use std::io::Error; use std::net::{IpAddr, SocketAddr}; use std::sync::Arc; @@ -40,10 +38,10 @@ pub struct CoreDns { #[derive(Clone)] struct CoreDnsData { - network_name: String, // raw network name - backend: &'static ArcSwap<DNSBackend>, // server's data store - no_proxy: bool, // do not forward to external resolvers - nameservers: Arc<Mutex<Vec<ScopedIp>>>, // host nameservers from resolv.conf + network_name: String, // raw network name + backend: &'static ArcSwap<DNSBackend>, // server's data store + no_proxy: bool, // do not forward to external resolvers + nameservers: Arc<Mutex<Vec<IpAddr>>>, // host nameservers from resolv.conf } enum Protocol { @@ -59,7 +57,7 @@ impl CoreDns { backend: &'static ArcSwap<DNSBackend>, rx: flume::Receiver<()>, no_proxy: bool, - nameservers: Arc<Mutex<Vec<ScopedIp>>>, + nameservers: Arc<Mutex<Vec<IpAddr>>>, ) -> Self { CoreDns { rx, @@ -219,18 +217,18 @@ impl CoreDns { "Forwarding dns request for {} type: {}", &request_name_string, record_type ); - let mut nameservers: Vec<ScopedIp> = Vec::new(); + let mut nameservers: Vec<IpAddr> = Vec::new(); // Add resolvers configured for container if let Some(Some(dns_servers)) = backend.ctr_dns_server.get(&src_address.ip()) { for dns_server in dns_servers.iter() { - nameservers.push(ScopedIp::from(*dns_server)); + nameservers.push(*dns_server); } // Add network scoped resolvers only if container specific resolvers were not configured } else if let Some(network_dns_servers) = backend.get_network_scoped_resolvers(&src_address.ip()) { for dns_server in network_dns_servers.iter() { - nameservers.push(ScopedIp::from(*dns_server)); + nameservers.push(*dns_server); } } // Use host resolvers if no custom resolvers are set for the container. @@ -257,7 +255,7 @@ impl CoreDns { } async fn forward_to_servers( - nameservers: Vec<ScopedIp>, + nameservers: Vec<IpAddr>, mut sender: BufDnsStreamHandle, src_address: SocketAddr, req: Message, @@ -265,7 +263,7 @@ impl CoreDns { ) { // forward dns request to hosts's /etc/resolv.conf for nameserver in &nameservers { - let addr = SocketAddr::new(nameserver.into(), 53); + let addr = SocketAddr::new(*nameserver, 53); let (client, handle) = match proto { Protocol::Udp => { let stream = UdpClientStream::<UdpSocket>::new(addr); |