From 7eadd5c6a09257470e432d83232dfbe116affb6f Mon Sep 17 00:00:00 2001 From: fanyang Date: Wed, 24 Jun 2026 00:09:37 +0800 Subject: [PATCH] fix: address dns review feedback --- easytier/src/instance/dns_server/server.rs | 6 +++--- easytier/src/instance/dns_server/server_instance.rs | 1 + easytier/src/instance/dns_server/tests.rs | 9 +++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/easytier/src/instance/dns_server/server.rs b/easytier/src/instance/dns_server/server.rs index ab993521..99cfe863 100644 --- a/easytier/src/instance/dns_server/server.rs +++ b/easytier/src/instance/dns_server/server.rs @@ -5,7 +5,7 @@ use hickory_proto::rr::LowerName; use hickory_resolver::config::ResolverOpts; use hickory_resolver::net::runtime::TokioRuntimeProvider; use hickory_resolver::system_conf::read_system_conf; -use hickory_server::net::runtime::{Time, TokioTime}; +use hickory_server::net::runtime::TokioTime; use hickory_server::server::Server as HickoryServer; use hickory_server::server::{Request, RequestHandler, ResponseHandler, ResponseInfo}; use hickory_server::store::forwarder::ForwardConfig; @@ -221,7 +221,7 @@ impl Server { .update( update, response_edns.as_ref(), - TokioTime::current_time(), + ::current_time(), response_handle, ) .await @@ -243,7 +243,7 @@ impl Server { .lookup( request, response_edns.as_ref(), - TokioTime::current_time(), + ::current_time(), response_handle, ) .await diff --git a/easytier/src/instance/dns_server/server_instance.rs b/easytier/src/instance/dns_server/server_instance.rs index 08cbe856..fbd6ab84 100644 --- a/easytier/src/instance/dns_server/server_instance.rs +++ b/easytier/src/instance/dns_server/server_instance.rs @@ -272,6 +272,7 @@ impl ResponseHandler for ResponseWrapper { .response .lock() .map_err(|_| NetError::Msg("lock poisoned".to_string()))?; + buffer.clear(); let mut encoder = BinEncoder::new(&mut buffer); diff --git a/easytier/src/instance/dns_server/tests.rs b/easytier/src/instance/dns_server/tests.rs index 07fda4e5..1c029f3f 100644 --- a/easytier/src/instance/dns_server/tests.rs +++ b/easytier/src/instance/dns_server/tests.rs @@ -10,6 +10,7 @@ use hickory_resolver::config::{ ConnectionConfig, NameServerConfig, ResolverConfig, ResolverOpts, }; use hickory_resolver::net::runtime::TokioRuntimeProvider; +use hickory_resolver::net::{DnsError, NetError}; use tokio::sync::Notify; use tokio_util::sync::CancellationToken; @@ -92,8 +93,12 @@ pub async fn check_dns_record_missing(fake_ip: &Ipv4Addr, domain: &str) { let response = resolver .lookup(rr::Name::from_str(domain).unwrap(), rr::RecordType::A) .await; - if let Ok(response) = response { - assert!(response.answers().is_empty(), "{:?}", response); + match response { + Ok(response) => assert!(response.answers().is_empty(), "{:?}", response), + Err(NetError::Dns(DnsError::NoRecordsFound(_))) => {} + Err(e) => { + panic!("DNS query for missing record failed unexpectedly for domain '{domain}': {e}") + } } }