diff options
| -rw-r--r-- | CHANGELOG.md | 7 | ||||
| -rw-r--r-- | talpid-core/src/routing/linux.rs | 4 |
2 files changed, 10 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index ad8a93a850..d993c6690e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,9 @@ Line wrap the file at 100 chars. Th #### Windows - Add support for custom DNS resolvers (CLI only). +#### Linux +- Use NetworkManager to create a WireGuard interface. + ### Changed - Use the API to fetch API IP addresses instead of DNS. - Remove WireGuard keys during uninstallation after the firewall is unlocked. @@ -58,6 +61,10 @@ Line wrap the file at 100 chars. Th #### Windows - Fix log output encoding for Windows modules. +#### Linux +- Handle statically added routes. +- Stop reconnecting when using WireGuard and NetworkManager. + ### Security - Restore the last target state if the daemon crashes. Previously, if auto-connect and "Always require VPN" were disabled, the service would reset the firewall upon starting back up, diff --git a/talpid-core/src/routing/linux.rs b/talpid-core/src/routing/linux.rs index 4516f19127..dbe35f2c96 100644 --- a/talpid-core/src/routing/linux.rs +++ b/talpid-core/src/routing/linux.rs @@ -196,7 +196,9 @@ impl RouteManagerImpl { async fn initialize_exclusions_routes(&mut self) -> Result<()> { self.purge_exclusions_routes().await?; - let main_routes = self.get_routes(None).await?; + let mut main_routes = self.get_routes(None).await?.into_iter().collect::<Vec<_>>(); + main_routes.sort_by(|a, b| a.prefix.prefix().cmp(&b.prefix.prefix())); + for mut route in main_routes { route.table_id = self.split_table_id; self.add_route_direct(route).await?; |
