From 8610234ee2ebc179ab9ea46e4ebf4a92c720c259 Mon Sep 17 00:00:00 2001 From: Luna Yao <40349250+ZnqbuZ@users.noreply.github.com> Date: Mon, 6 Apr 2026 04:02:15 +0200 Subject: [PATCH] server: clean up on stop server --- easytier/src/dns/server.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/easytier/src/dns/server.rs b/easytier/src/dns/server.rs index 86db53d6..0771781f 100644 --- a/easytier/src/dns/server.rs +++ b/easytier/src/dns/server.rs @@ -273,6 +273,27 @@ impl DnsServer { ); self.addresses.write().clear(); + self.listeners.write().clear(); + + #[cfg(feature = "tun")] + if let Some(nic_ctx) = self + .nic_ctx + .lock() + .await + .as_ref() + .and_then(|nic_ctx| nic_ctx.downcast_ref::()) + { + if let Some(system) = nic_ctx + .ifname() + .await + .map(|ifname| system::get(&ifname).ok()) + .flatten() + .flatten() + { + let _ = system.clean(); + } + } + if let Some(runtime) = runtime.take() { let _ = runtime.stop().await; } @@ -283,6 +304,7 @@ impl Drop for DnsServer { fn drop(&mut self) { tracing::info!("DnsServer is dropped"); self.addresses.write().clear(); + self.listeners.write().clear(); } }