From 32b1fe0893d709e793bd3239f92316a2cc07476d Mon Sep 17 00:00:00 2001 From: "sijie.sun" Date: Thu, 6 Feb 2025 18:06:11 +0800 Subject: [PATCH] netlink shoud remove route only when ifidx is same --- easytier/src/common/ifcfg/netlink.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/easytier/src/common/ifcfg/netlink.rs b/easytier/src/common/ifcfg/netlink.rs index 4c62071..0ddcb2a 100644 --- a/easytier/src/common/ifcfg/netlink.rs +++ b/easytier/src/common/ifcfg/netlink.rs @@ -377,16 +377,18 @@ impl IfConfiguerTrait for NetlinkIfConfiger { async fn remove_ipv4_route( &self, - _name: &str, + name: &str, address: Ipv4Addr, cidr_prefix: u8, ) -> Result<(), Error> { let routes = Self::list_routes()?; + let ifidx = NetlinkIfConfiger::get_interface_index(name)?; for msg in routes { let other_route: Route = msg.clone().into(); if other_route.destination == std::net::IpAddr::V4(address) && other_route.prefix == cidr_prefix + && other_route.ifindex == Some(ifidx) { send_netlink_req_and_wait_one_resp(RouteNetlinkMessage::DelRoute(msg), true)?; return Ok(());