diff options
| author | Emīls <emils@mullvad.net> | 2020-10-26 11:29:55 +0000 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2020-10-26 11:52:51 +0000 |
| commit | f163173a316fb5a91fa3ac2db7032f86902e35b8 (patch) | |
| tree | 91d87b39ce67d36e99b32ad73c92d850abdcbc5e | |
| parent | e00ecb134f89edf9f9fc5a9370e889ee032ec99e (diff) | |
| download | mullvadvpn-f163173a316fb5a91fa3ac2db7032f86902e35b8.tar.xz mullvadvpn-f163173a316fb5a91fa3ac2db7032f86902e35b8.zip | |
Sort routes by prefix length before applying them
| -rw-r--r-- | talpid-core/src/routing/linux.rs | 4 |
1 files changed, 3 insertions, 1 deletions
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?; |
