From e4bf2ca95987d9f1d9c74b77f59d5668faf79aaf Mon Sep 17 00:00:00 2001 From: Luna Yao <40349250+ZnqbuZ@users.noreply.github.com> Date: Fri, 20 Feb 2026 22:18:50 +0100 Subject: [PATCH] utils: add NameServerConfigGroup conversion impls --- easytier/src/dns/utils.rs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/easytier/src/dns/utils.rs b/easytier/src/dns/utils.rs index 001f2575..79a6fa26 100644 --- a/easytier/src/dns/utils.rs +++ b/easytier/src/dns/utils.rs @@ -1,9 +1,10 @@ use crate::proto; +use crate::proto::utils::RepeatedMessageModel; use anyhow::{anyhow, Error}; -use derive_more::{Deref, DerefMut, From, Into, IntoIterator}; +use derive_more::{Deref, DerefMut}; use hickory_proto::rr::{LowerName, RecordType}; use hickory_proto::xfer::Protocol; -use hickory_resolver::config::NameServerConfig; +use hickory_resolver::config::{NameServerConfig, NameServerConfigGroup}; use hickory_server::authority::{ Authority, LookupControlFlow, LookupObject, LookupOptions, MessageRequest, UpdateResult, ZoneType, @@ -11,13 +12,11 @@ use hickory_server::authority::{ use hickory_server::server::RequestInfo; use idna::AsciiDenyList; use itertools::Itertools; -use serde::{Deserialize, Serialize}; use serde_with::{DeserializeFromStr, SerializeDisplay}; use std::fmt::{Display, Formatter}; use std::net::{IpAddr, SocketAddr}; use std::str::FromStr; use url::Url; -use crate::proto::utils::{MessageModel, RepeatedMessageModel}; pub fn sanitize(name: &str) -> String { let dot = name.ends_with('.'); @@ -174,6 +173,23 @@ impl Display for NameServerAddr { pub(super) type NameServerAddrGroup = RepeatedMessageModel; +impl From for NameServerConfigGroup { + fn from(value: NameServerAddrGroup) -> Self { + value.into_iter().map_into().collect_vec().into() + } +} + +impl From for NameServerAddrGroup { + fn from(value: NameServerConfigGroup) -> Self { + value + .into_inner() + .into_iter() + .map_into() + .collect_vec() + .into() + } +} + #[derive(Deref, DerefMut)] pub struct ChainedAuthority(pub(super) A) where