diff options
| author | Emīls <emils@mullvad.net> | 2020-10-26 12:45:10 +0000 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2020-10-26 12:45:10 +0000 |
| commit | 4331a3fb74d998740d352d78e597ffba6a0c0dd2 (patch) | |
| tree | fe70cfd30befdd0c2a49a0bfe2b454c6e40bbce6 | |
| parent | e00ecb134f89edf9f9fc5a9370e889ee032ec99e (diff) | |
| parent | 5643871e3d8cc64e6acd5bef19de912ac5e53896 (diff) | |
| download | mullvadvpn-4331a3fb74d998740d352d78e597ffba6a0c0dd2.tar.xz mullvadvpn-4331a3fb74d998740d352d78e597ffba6a0c0dd2.zip | |
Merge branch 'linux-allow-static-routes'
| -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?; |
