From d87624b353b08cf18e05c872e2f6bee5eb5e6442 Mon Sep 17 00:00:00 2001 From: "sijie.sun" Date: Sun, 14 Jun 2026 23:14:45 +0800 Subject: [PATCH] fix: address shared tun ci failures --- easytier-gui/src-tauri/src/lib.rs | 5 +++-- .../instance/dns_server/server_instance.rs | 4 ++-- easytier/src/instance/instance.rs | 22 +++++++++---------- easytier/src/instance/shared_virtual_nic.rs | 4 ++-- easytier/src/launcher.rs | 7 ++++-- easytier/src/tests/three_node.rs | 5 ++--- 6 files changed, 24 insertions(+), 23 deletions(-) diff --git a/easytier-gui/src-tauri/src/lib.rs b/easytier-gui/src-tauri/src/lib.rs index b2338cdc..25fd6da0 100644 --- a/easytier-gui/src-tauri/src/lib.rs +++ b/easytier-gui/src-tauri/src/lib.rs @@ -953,8 +953,9 @@ mod manager { return Vec::new(); }; - let (first_id, Some(shared_dev_name)) = first else { - return vec![first.0]; + let (first_id, shared_dev_name) = first; + let Some(shared_dev_name) = shared_dev_name else { + return vec![first_id]; }; let ids: Vec = self diff --git a/easytier/src/instance/dns_server/server_instance.rs b/easytier/src/instance/dns_server/server_instance.rs index 602efc32..37133d5f 100644 --- a/easytier/src/instance/dns_server/server_instance.rs +++ b/easytier/src/instance/dns_server/server_instance.rs @@ -519,7 +519,7 @@ impl MagicDnsServerInstance { netns: Option, cost: Option, ) -> Result<(), anyhow::Error> { - let ifcfg = IfConfiger {}; + let ifcfg = IfConfiger::default(); let _guard = NetNS::new(netns).guard(); match ifcfg.add_ipv4_route(tun_dev_name, fake_ip, 32, cost).await { Err(EtError::IOError(err)) if err.kind() == io::ErrorKind::AlreadyExists => { @@ -534,7 +534,7 @@ impl MagicDnsServerInstance { } async fn remove_fake_ip_route(tun_dev_name: &str, fake_ip: Ipv4Addr, netns: Option) { - let ifcfg = IfConfiger {}; + let ifcfg = IfConfiger::default(); let _guard = NetNS::new(netns).guard(); if let Err(err) = ifcfg.remove_ipv4_route(tun_dev_name, fake_ip, 32).await { tracing::warn!( diff --git a/easytier/src/instance/instance.rs b/easytier/src/instance/instance.rs index 96f10bd1..a7ce0fd3 100644 --- a/easytier/src/instance/instance.rs +++ b/easytier/src/instance/instance.rs @@ -1737,18 +1737,16 @@ impl Instance { .with_context(|| "add ip failed")?; #[cfg(feature = "magic-dns")] - let magic_dns_runner = if let Some(ipv4) = global_ctx.get_ipv4() { - Self::create_magic_dns_runner(peer_manager.clone(), None, ipv4) - } else { - None - }; - Self::use_new_nic_ctx( - nic_ctx.clone(), - new_nic_ctx, - #[cfg(feature = "magic-dns")] - magic_dns_runner, - ) - .await; + { + let magic_dns_runner = if let Some(ipv4) = global_ctx.get_ipv4() { + Self::create_magic_dns_runner(peer_manager.clone(), None, ipv4) + } else { + None + }; + Self::use_new_nic_ctx(nic_ctx.clone(), new_nic_ctx, magic_dns_runner).await; + } + #[cfg(not(feature = "magic-dns"))] + Self::use_new_nic_ctx(nic_ctx.clone(), new_nic_ctx).await; Ok(()) } diff --git a/easytier/src/instance/shared_virtual_nic.rs b/easytier/src/instance/shared_virtual_nic.rs index 005cb969..351504cc 100644 --- a/easytier/src/instance/shared_virtual_nic.rs +++ b/easytier/src/instance/shared_virtual_nic.rs @@ -698,7 +698,7 @@ impl SharedVirtualNicMember { } pub fn member_id(&self) -> SharedVirtualNicMemberId { - self.member_id.clone() + self.member_id } pub fn shared_nic(&self) -> Arc> { @@ -957,7 +957,7 @@ impl SharedVirtualNicRegistry { let needs_new_entry = self .nics .get(&dev_name) - .map_or(true, |entry| !entry.is_valid()); + .is_none_or(|entry| !entry.is_valid()); if needs_new_entry { let entry = SharedVirtualNicRegistryEntry::new(SharedVirtualNic::new(config)); self.nics.insert(dev_name.clone(), entry); diff --git a/easytier/src/launcher.rs b/easytier/src/launcher.rs index 14ec7550..e425a924 100644 --- a/easytier/src/launcher.rs +++ b/easytier/src/launcher.rs @@ -129,7 +129,7 @@ impl EasyTierLauncher { let Some(tun_fd) = tun_fd_receiver.recv().await.flatten() else { return; }; - let _ = Instance::setup_nic_ctx_for_mobile( + if let Err(err) = Instance::setup_nic_ctx_for_mobile( nic_ctx.clone(), global_ctx.clone(), peer_mgr.clone(), @@ -137,7 +137,10 @@ impl EasyTierLauncher { shared_virtual_nic_registry.clone(), tun_fd, ) - .await; + .await + { + tracing::error!(?err, tun_fd, "setup mobile nic ctx failed"); + } } }); } diff --git a/easytier/src/tests/three_node.rs b/easytier/src/tests/three_node.rs index 8d160b11..24afdb5c 100644 --- a/easytier/src/tests/three_node.rs +++ b/easytier/src/tests/three_node.rs @@ -345,12 +345,11 @@ async fn wait_proxy_route_to_peer( wait_for_condition( || async { let routes = mgr.list_routes().await; - let route_found = routes.iter().any(|route| { + routes.iter().any(|route| { route.peer_id == dst_peer_id && route.ipv4_addr == Some(ipv4.parse().unwrap()) && route.proxy_cidrs.contains(&proxy_cidr) - }); - route_found + }) }, Duration::from_secs(8), )