diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2019-09-11 14:30:12 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2019-09-13 11:28:56 +0200 |
| commit | e4fcee8525c1e43cc1d681d3763ae2be58c03657 (patch) | |
| tree | 55e5c90ba309e38ce095156ee2f7e83963bbb634 /mullvad-cli | |
| parent | cf0459a0aa5c5a9064bd9f242cc0e8fab22213bd (diff) | |
| download | mullvadvpn-e4fcee8525c1e43cc1d681d3763ae2be58c03657.tar.xz mullvadvpn-e4fcee8525c1e43cc1d681d3763ae2be58c03657.zip | |
Filter relays on the new "active" flag in the CLI
Diffstat (limited to 'mullvad-cli')
| -rw-r--r-- | mullvad-cli/src/cmds/bridge.rs | 3 | ||||
| -rw-r--r-- | mullvad-cli/src/cmds/relay.rs | 25 |
2 files changed, 27 insertions, 1 deletions
diff --git a/mullvad-cli/src/cmds/bridge.rs b/mullvad-cli/src/cmds/bridge.rs index caee182123..fa80c3fa40 100644 --- a/mullvad-cli/src/cmds/bridge.rs +++ b/mullvad-cli/src/cmds/bridge.rs @@ -323,7 +323,7 @@ impl Bridge { .cities .into_iter() .filter_map(|mut city| { - city.relays.retain(|relay| !relay.bridges.is_empty()); + city.relays.retain(|relay| relay.active && !relay.bridges.is_empty()); if !city.relays.is_empty() { Some(city) } else { @@ -339,6 +339,7 @@ impl Bridge { }) .collect(); + locations.countries.sort_by(|c1, c2| c1.name.cmp(&c2.name)); for mut country in locations.countries { country.cities.sort_by(|c1, c2| c1.name.cmp(&c2.name)); println!("{} ({})", country.name, country.code); diff --git a/mullvad-cli/src/cmds/relay.rs b/mullvad-cli/src/cmds/relay.rs index 13b26b79c6..c281732b5e 100644 --- a/mullvad-cli/src/cmds/relay.rs +++ b/mullvad-cli/src/cmds/relay.rs @@ -315,6 +315,31 @@ impl Relay { fn list(&self) -> Result<()> { let mut rpc = new_rpc_client()?; let mut locations = rpc.get_relay_locations()?; + + locations.countries = locations + .countries + .into_iter() + .filter_map(|mut country| { + country.cities = country + .cities + .into_iter() + .filter_map(|mut city| { + city.relays.retain(|relay| relay.active && !relay.tunnels.is_empty()); + if !city.relays.is_empty() { + Some(city) + } else { + None + } + }) + .collect(); + if !country.cities.is_empty() { + Some(country) + } else { + None + } + }) + .collect(); + locations.countries.sort_by(|c1, c2| c1.name.cmp(&c2.name)); for mut country in locations.countries { country.cities.sort_by(|c1, c2| c1.name.cmp(&c2.name)); |
