server: add register method

node: format

node & server: fix rpc ownership
This commit is contained in:
Luna Yao
2026-04-06 11:54:50 +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::proto::rpc_types::controller::BaseController;
use crate::tunnel::tcp::{TcpTunnelConnector, TcpTunnelListener}; use crate::tunnel::tcp::{TcpTunnelConnector, TcpTunnelListener};
use crate::utils::AsyncRuntime; use crate::utils::AsyncRuntime;
use derivative::Derivative;
use futures::task::SpawnExt;
use std::sync::Arc; use std::sync::Arc;
use std::time::Duration; use std::time::Duration;
use tokio::sync::{broadcast, Mutex, Notify}; use tokio::sync::{broadcast, Notify};
use tokio::task::{JoinHandle, JoinSet}; use tokio::task::JoinSet;
use tokio::time::{sleep, sleep_until, Instant}; use tokio::time::{sleep, sleep_until, Instant};
use tokio_util::sync::CancellationToken; use tokio_util::sync::CancellationToken;
use uuid::Uuid; use uuid::Uuid;
@@ -108,11 +106,12 @@ impl DnsNode {
let server = Arc::new(DnsServer::new( let server = Arc::new(DnsServer::new(
self.peer_mgr.clone(), self.peer_mgr.clone(),
self.global_ctx.clone(), self.global_ctx.clone(),
rpc,
#[cfg(feature = "tun")] #[cfg(feature = "tun")]
self.nic_ctx.clone(), self.nic_ctx.clone(),
)); ));
server.register(&rpc);
self.global_ctx.set_dns(Some(server.clone())); self.global_ctx.set_dns(Some(server.clone()));
tokio::join!( tokio::join!(
self.peer_mgr self.peer_mgr
+6 -7
View File
@@ -140,16 +140,10 @@ impl DnsServer {
pub fn new( pub fn new(
peer_mgr: Arc<PeerManager>, peer_mgr: Arc<PeerManager>,
global_ctx: ArcGlobalCtx, global_ctx: ArcGlobalCtx,
rpc: StandAloneServer<TcpTunnelListener>,
#[cfg(feature = "tun")] nic_ctx: ArcNicCtx, // TODO: REMOVE THIS #[cfg(feature = "tun")] nic_ctx: ArcNicCtx, // TODO: REMOVE THIS
) -> Self { ) -> Self {
let mgr = Arc::new(DnsNodeMgr::new());
rpc.registry()
.register(DnsNodeMgrRpcServer::new_arc(mgr.clone()), "");
Self { Self {
mgr, mgr: Arc::new(DnsNodeMgr::new()),
nic_ctx, nic_ctx,
peer_mgr, peer_mgr,
global_ctx, 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> { pub fn addresses(&self) -> HashSet<SocketAddr> {
self.addresses.read().iter().map(|a| a.addr).collect() self.addresses.read().iter().map(|a| a.addr).collect()
} }