summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-core/src/routing/linux.rs25
1 files changed, 19 insertions, 6 deletions
diff --git a/talpid-core/src/routing/linux.rs b/talpid-core/src/routing/linux.rs
index abf64c8fe1..025804d3e1 100644
--- a/talpid-core/src/routing/linux.rs
+++ b/talpid-core/src/routing/linux.rs
@@ -450,12 +450,25 @@ impl RouteManagerImpl {
let mut exclusions_route = route.clone();
exclusions_route.table_id = self.split_table_id;
if let Err(error) = self.delete_route(&exclusions_route).await {
- // This may be expected when routes are deleted by the kernel
- log::debug!(
- "Failed to remove exclusions route: {}\n{}",
- exclusions_route,
- error.display_chain(),
- );
+ match error {
+ Error::NetlinkError(rtnetlink::Error::NetlinkError(error)) => {
+ // Not finding the route is expected if the link goes down
+ if error.code != -libc::ESRCH {
+ log::error!(
+ "Failed to remove exclusions route: {}\n{}",
+ exclusions_route,
+ error
+ );
+ }
+ }
+ error => {
+ log::error!(
+ "Failed to remove exclusions route: {}\n{}",
+ exclusions_route,
+ error.display_chain()
+ );
+ }
+ }
}
}