server: add register method

node: format

node & server: fix rpc ownership
This commit is contained in:
Luna Yao
2026-03-31 12:20:46 +02:00
parent 6c47b0d86c
commit 093cd7c197
2 changed files with 10 additions and 12 deletions
+4 -5
View File
@@ -12,12 +12,10 @@ use crate::proto::rpc_impl::standalone::{StandAloneClient, StandAloneServer};
use crate::proto::rpc_types::controller::BaseController;
use crate::tunnel::tcp::{TcpTunnelConnector, TcpTunnelListener};
use crate::utils::AsyncRuntime;
use derivative::Derivative;
use futures::task::SpawnExt;
use std::sync::Arc;
use std::time::Duration;
use tokio::sync::{broadcast, Mutex, Notify};
use tokio::task::{JoinHandle, JoinSet};
use tokio::sync::{broadcast, Notify};
use tokio::task::JoinSet;
use tokio::time::{sleep, sleep_until, Instant};
use tokio_util::sync::CancellationToken;
use uuid::Uuid;
@@ -108,11 +106,12 @@ impl DnsNode {
let server = Arc::new(DnsServer::new(
self.peer_mgr.clone(),
self.global_ctx.clone(),
rpc,
#[cfg(feature = "tun")]
self.nic_ctx.clone(),
));
server.register(&rpc);
self.global_ctx.set_dns(Some(server.clone()));
tokio::join!(
self.peer_mgr
+6 -7
View File
@@ -140,16 +140,10 @@ impl DnsServer {
pub fn new(
peer_mgr: Arc<PeerManager>,
global_ctx: ArcGlobalCtx,
rpc: StandAloneServer<TcpTunnelListener>,
#[cfg(feature = "tun")] nic_ctx: ArcNicCtx, // TODO: REMOVE THIS
) -> Self {
let mgr = Arc::new(DnsNodeMgr::new());
rpc.registry()
.register(DnsNodeMgrRpcServer::new_arc(mgr.clone()), "");
Self {
mgr,
mgr: Arc::new(DnsNodeMgr::new()),
nic_ctx,
peer_mgr,
global_ctx,
@@ -158,6 +152,11 @@ impl DnsServer {
}
}
pub fn register(&self, rpc: &StandAloneServer<TcpTunnelListener>) {
rpc.registry()
.register(DnsNodeMgrRpcServer::new_arc(self.mgr.clone()), "");
}
pub fn addresses(&self) -> HashSet<SocketAddr> {
self.addresses.read().iter().map(|a| a.addr).collect()
}