client: rename to node

This commit is contained in:
Luna Yao
2026-04-06 11:54:01 +02:00
parent 5372596432
commit f5d3443928
5 changed files with 30 additions and 30 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
mod client; mod node;
mod client_mgr; mod node_mgr;
pub mod config; pub mod config;
mod peer_mgr; mod peer_mgr;
mod server; mod server;
@@ -1,7 +1,7 @@
use crate::dns::config::DNS_SERVER_RPC_ADDR; use crate::dns::config::DNS_SERVER_RPC_ADDR;
use crate::dns::peer_mgr::DnsPeerMgr; use crate::dns::peer_mgr::DnsPeerMgr;
use crate::peers::peer_manager::PeerManager; use crate::peers::peer_manager::PeerManager;
use crate::proto::dns::{DnsClientMgrRpcClientFactory, DnsPeerMgrRpcServer, HeartbeatRequest}; use crate::proto::dns::{DnsNodeMgrRpcClientFactory, DnsPeerMgrRpcServer, HeartbeatRequest};
use crate::proto::peer_rpc::RoutePeerInfo; use crate::proto::peer_rpc::RoutePeerInfo;
use crate::proto::rpc_impl::standalone::StandAloneClient; use crate::proto::rpc_impl::standalone::StandAloneClient;
use crate::proto::rpc_types::controller::BaseController; use crate::proto::rpc_types::controller::BaseController;
@@ -12,13 +12,13 @@ use tokio::task::JoinSet;
use uuid::Uuid; use uuid::Uuid;
#[derive(Debug)] #[derive(Debug)]
pub struct DnsClient { pub struct DnsNode {
mgr: Arc<DnsPeerMgr>, mgr: Arc<DnsPeerMgr>,
tasks: JoinSet<()>, tasks: JoinSet<()>,
} }
impl DnsClient { impl DnsNode {
pub fn new(peer_mgr: Arc<PeerManager>) -> Self { pub fn new(peer_mgr: Arc<PeerManager>) -> Self {
let mgr = Arc::new(DnsPeerMgr::new(peer_mgr.clone())); let mgr = Arc::new(DnsPeerMgr::new(peer_mgr.clone()));
peer_mgr peer_mgr
@@ -50,7 +50,7 @@ impl DnsClient {
loop { loop {
self.mgr.dirty.notify.notified().await; self.mgr.dirty.notify.notified().await;
if let Err(e) = self.heartbeat(&mut rpc, &mut heartbeat).await { if let Err(e) = self.heartbeat(&mut rpc, &mut heartbeat).await {
tracing::error!("DnsClient heartbeat failed: {:?}", e); tracing::error!("heartbeat failed: {:?}", e);
} }
tokio::time::sleep(Duration::from_secs(1)).await; tokio::time::sleep(Duration::from_secs(1)).await;
} }
@@ -72,7 +72,7 @@ impl DnsClient {
}; };
let client = rpc let client = rpc
.scoped_client::<DnsClientMgrRpcClientFactory<BaseController>>("".to_string()) .scoped_client::<DnsNodeMgrRpcClientFactory<BaseController>>("".to_string())
.await?; .await?;
let response = client.heartbeat(BaseController::default(), request).await?; let response = client.heartbeat(BaseController::default(), request).await?;
@@ -1,7 +1,7 @@
use crate::dns::utils::addr::NameServerAddr; use crate::dns::utils::addr::NameServerAddr;
use crate::dns::utils::dirty::{DirtyFlag, DirtyState}; use crate::dns::utils::dirty::{DirtyFlag, DirtyState};
use crate::dns::zone::{Zone, ZoneGroup}; use crate::dns::zone::{Zone, ZoneGroup};
use crate::proto::dns::DnsClientMgrRpc; use crate::proto::dns::DnsNodeMgrRpc;
use crate::proto::dns::{DnsSnapshot, HeartbeatRequest, HeartbeatResponse}; use crate::proto::dns::{DnsSnapshot, HeartbeatRequest, HeartbeatResponse};
use crate::proto::rpc_types; use crate::proto::rpc_types;
use crate::proto::rpc_types::controller::BaseController; use crate::proto::rpc_types::controller::BaseController;
@@ -15,14 +15,14 @@ use std::time::Duration;
use uuid::Uuid; use uuid::Uuid;
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]
pub struct DnsClientInfo { pub struct DnsNodeInfo {
digest: Vec<u8>, digest: Vec<u8>,
zones: ZoneGroup, zones: ZoneGroup,
addresses: HashSet<NameServerAddr>, addresses: HashSet<NameServerAddr>,
listeners: HashSet<NameServerAddr>, listeners: HashSet<NameServerAddr>,
} }
impl TryFrom<&DnsSnapshot> for DnsClientInfo { impl TryFrom<&DnsSnapshot> for DnsNodeInfo {
type Error = Error; type Error = Error;
fn try_from(value: &DnsSnapshot) -> Result<Self, Self::Error> { fn try_from(value: &DnsSnapshot) -> Result<Self, Self::Error> {
@@ -38,22 +38,22 @@ impl TryFrom<&DnsSnapshot> for DnsClientInfo {
const DNS_CLIENT_TTL: Duration = Duration::from_secs(5); const DNS_CLIENT_TTL: Duration = Duration::from_secs(5);
#[derive(Debug, Default)] #[derive(Debug, Default)]
pub struct DnsClientMgrDirtyFlags { pub struct DnsNodeMgrDirtyFlags {
pub(super) catalog: DirtyFlag, pub(super) catalog: DirtyFlag,
pub(super) addresses: DirtyFlag, pub(super) addresses: DirtyFlag,
pub(super) listeners: DirtyFlag, pub(super) listeners: DirtyFlag,
} }
#[derive(Debug)] #[derive(Debug)]
pub struct DnsClientMgr { pub struct DnsNodeMgr {
clients: Cache<Uuid, DnsClientInfo>, nodes: Cache<Uuid, DnsNodeInfo>,
pub(super) dirty: DirtyState<DnsClientMgrDirtyFlags>, pub(super) dirty: DirtyState<DnsNodeMgrDirtyFlags>,
} }
impl DnsClientMgr { impl DnsNodeMgr {
pub fn new() -> Self { pub fn new() -> Self {
Self { Self {
clients: Cache::builder().time_to_live(DNS_CLIENT_TTL).build(), nodes: Cache::builder().time_to_live(DNS_CLIENT_TTL).build(),
dirty: Default::default(), dirty: Default::default(),
} }
} }
@@ -83,7 +83,7 @@ impl DnsClientMgr {
let mut zones = vec![Zone::system()]; let mut zones = vec![Zone::system()];
let mut local = HashSet::<NameServerAddr>::new(); let mut local = HashSet::<NameServerAddr>::new();
for (_, info) in self.clients.iter() { for (_, info) in self.nodes.iter() {
zones.extend(info.zones); zones.extend(info.zones);
local.extend(info.addresses); local.extend(info.addresses);
local.extend(info.listeners); local.extend(info.listeners);
@@ -101,14 +101,14 @@ impl DnsClientMgr {
} }
pub fn iter_addresses(&self) -> impl Iterator<Item = NameServerAddr> + use<'_> { pub fn iter_addresses(&self) -> impl Iterator<Item = NameServerAddr> + use<'_> {
self.clients self.nodes
.iter() .iter()
.flat_map(|(_, info)| info.addresses) .flat_map(|(_, info)| info.addresses)
.unique() .unique()
} }
pub fn iter_listeners(&self) -> impl Iterator<Item = NameServerAddr> + use<'_> { pub fn iter_listeners(&self) -> impl Iterator<Item = NameServerAddr> + use<'_> {
self.clients self.nodes
.iter() .iter()
.flat_map(|(_, info)| info.listeners) .flat_map(|(_, info)| info.listeners)
.unique() .unique()
@@ -116,7 +116,7 @@ impl DnsClientMgr {
} }
#[async_trait::async_trait] #[async_trait::async_trait]
impl DnsClientMgrRpc for DnsClientMgr { impl DnsNodeMgrRpc for DnsNodeMgr {
type Controller = BaseController; type Controller = BaseController;
async fn heartbeat( async fn heartbeat(
@@ -133,8 +133,8 @@ impl DnsClientMgrRpc for DnsClientMgr {
.into(); .into();
let resync = if let Some(snapshot) = input.snapshot.as_ref() { let resync = if let Some(snapshot) = input.snapshot.as_ref() {
let new = DnsClientInfo::try_from(snapshot)?; let new = DnsNodeInfo::try_from(snapshot)?;
let old = self.clients.get(&id).await.unwrap_or_default(); let old = self.nodes.get(&id).await.unwrap_or_default();
if new.digest != old.digest { if new.digest != old.digest {
self.dirty.catalog.mark(); self.dirty.catalog.mark();
if new.addresses != old.addresses { if new.addresses != old.addresses {
@@ -144,12 +144,12 @@ impl DnsClientMgrRpc for DnsClientMgr {
self.dirty.listeners.mark(); self.dirty.listeners.mark();
} }
self.clients.insert(id, new).await; self.nodes.insert(id, new).await;
self.dirty.notify.notify_one(); self.dirty.notify.notify_one();
} }
false false
} else { } else {
self.clients self.nodes
.get(&id) .get(&id)
.await .await
.is_none_or(|info| info.digest != input.digest) .is_none_or(|info| info.digest != input.digest)
+5 -5
View File
@@ -1,7 +1,7 @@
use crate::dns::client_mgr::DnsClientMgr; use crate::dns::node_mgr::DnsNodeMgr;
use crate::dns::utils::addr::NameServerAddr; use crate::dns::utils::addr::NameServerAddr;
use crate::peers::peer_manager::PeerManager; use crate::peers::peer_manager::PeerManager;
use crate::proto::dns::DnsClientMgrRpcServer; use crate::proto::dns::DnsNodeMgrRpcServer;
use derivative::Derivative; use derivative::Derivative;
use derive_more::{Deref, DerefMut, From, Into}; use derive_more::{Deref, DerefMut, From, Into};
use hickory_proto::rr::Record; use hickory_proto::rr::Record;
@@ -127,7 +127,7 @@ impl ResponseHandler for Response {
#[derive(Derivative)] #[derive(Derivative)]
#[derivative(Debug)] #[derivative(Debug)]
pub struct DnsServer { pub struct DnsServer {
mgr: Arc<DnsClientMgr>, mgr: Arc<DnsNodeMgr>,
#[derivative(Debug = "ignore")] #[derivative(Debug = "ignore")]
catalog: DynamicCatalog, catalog: DynamicCatalog,
@@ -140,13 +140,13 @@ const DNS_SERVER_LISTENER_TCP_TIMEOUT: Duration = Duration::from_secs(5);
impl DnsServer { impl DnsServer {
pub fn new(peer_mgr: Arc<PeerManager>) -> Self { pub fn new(peer_mgr: Arc<PeerManager>) -> Self {
let mgr = Arc::new(DnsClientMgr::new()); let mgr = Arc::new(DnsNodeMgr::new());
peer_mgr peer_mgr
.get_peer_rpc_mgr() .get_peer_rpc_mgr()
.rpc_server() .rpc_server()
.registry() .registry()
.register( .register(
DnsClientMgrRpcServer::new_arc(mgr.clone()), DnsNodeMgrRpcServer::new_arc(mgr.clone()),
&peer_mgr.get_global_ctx_ref().get_network_name(), &peer_mgr.get_global_ctx_ref().get_network_name(),
); );
+1 -1
View File
@@ -38,6 +38,6 @@ message HeartbeatResponse {
bool resync = 1; bool resync = 1;
} }
service DnsClientMgrRpc { service DnsNodeMgrRpc {
rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse) {} rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse) {}
} }