diff options
| author | David Lönnhager <david.l@mullvad.net> | 2023-08-10 18:05:45 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2023-08-21 16:39:48 +0200 |
| commit | f547247627593aa45f0f67b7bb19c83168cd125d (patch) | |
| tree | dd934dde5576b43f6afadfb2439df34e238287c6 /mullvad-cli/src | |
| parent | e1955e78956249966909f9234d586eff790ae780 (diff) | |
| download | mullvadvpn-f547247627593aa45f0f67b7bb19c83168cd125d.tar.xz mullvadvpn-f547247627593aa45f0f67b7bb19c83168cd125d.zip | |
Improve presentation of relay settings in the CLI
Diffstat (limited to 'mullvad-cli/src')
| -rw-r--r-- | mullvad-cli/src/cmds/relay.rs | 90 |
1 files changed, 84 insertions, 6 deletions
diff --git a/mullvad-cli/src/cmds/relay.rs b/mullvad-cli/src/cmds/relay.rs index 83f4ad4fdd..92696591d4 100644 --- a/mullvad-cli/src/cmds/relay.rs +++ b/mullvad-cli/src/cmds/relay.rs @@ -5,9 +5,9 @@ use mullvad_management_interface::MullvadProxyClient; use mullvad_types::{ location::Location, relay_constraints::{ - Constraint, GeographicLocationConstraint, LocationConstraint, Match, OpenVpnConstraints, - Ownership, Provider, Providers, RelayConstraintsUpdate, RelaySettings, RelaySettingsUpdate, - TransportPort, WireguardConstraints, + Constraint, GeographicLocationConstraint, LocationConstraint, LocationConstraintFormatter, + Match, OpenVpnConstraints, Ownership, Provider, Providers, RelayConstraintsUpdate, + RelaySettings, RelaySettingsUpdate, TransportPort, WireguardConstraints, }, relay_list::{RelayEndpointData, RelayListCountry}, ConnectionConfig, CustomTunnelEndpoint, @@ -214,9 +214,87 @@ impl Relay { let mut rpc = MullvadProxyClient::new().await?; let settings = rpc.get_settings().await?; let relay_settings = settings.relay_settings; - let mut buf = String::new(); - let _ = relay_settings.format(&mut buf, &settings.custom_lists); - println!("Current constraints: \n{}", buf); + + match relay_settings { + RelaySettings::CustomTunnelEndpoint(endpoint) => { + println!("Custom endpoint: {endpoint}") + } + + RelaySettings::Normal(constraints) => { + println!("Generic constraints"); + + println!( + "{:<4}{:<24}{}", + "", + "Location:", + constraints + .location + .as_ref() + .map(|location| LocationConstraintFormatter { + constraint: location, + custom_lists: &settings.custom_lists + }), + ); + + println!( + "{:<4}{:<24}{}", + "", "Tunnel protocol:", constraints.tunnel_protocol, + ); + + println!("{:<4}{:<24}{}", "", "Provider(s):", constraints.providers,); + println!("{:<4}{:<24}{}", "", "Ownership:", constraints.ownership,); + + println!("OpenVPN constraints"); + + match constraints.openvpn_constraints.port { + Constraint::Any => { + println!("{:<4}{:<24}{}", "", "Port:", "any",); + println!("{:<4}{:<24}{}", "", "Transport:", "any",); + } + Constraint::Only(transport_port) => { + println!("{:<4}{:<24}{}", "", "Port:", transport_port.port,); + println!("{:<4}{:<24}{}", "", "Transport:", transport_port.protocol,); + } + } + + println!("WireGuard constraints"); + + println!( + "{:<4}{:<24}{}", + "", "Port:", constraints.wireguard_constraints.port, + ); + + println!( + "{:<4}{:<24}{}", + "", "IP protocol:", constraints.wireguard_constraints.ip_version, + ); + + println!( + "{:<4}{:<24}{}", + "", + "Multihop state:", + if constraints.wireguard_constraints.use_multihop { + "enabled" + } else { + "disabled" + }, + ); + println!( + "{:<4}{:<24}{}", + "", + "Multihop entry:", + constraints + .wireguard_constraints + .entry_location + .as_ref() + .map(|location| LocationConstraintFormatter { + constraint: location, + custom_lists: &settings.custom_lists + }), + ); + } + } + Ok(()) } |
