summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2023-08-10 18:05:45 +0200
committerDavid Lönnhager <david.l@mullvad.net>2023-08-21 16:39:48 +0200
commitf547247627593aa45f0f67b7bb19c83168cd125d (patch)
treedd934dde5576b43f6afadfb2439df34e238287c6 /mullvad-cli/src
parente1955e78956249966909f9234d586eff790ae780 (diff)
downloadmullvadvpn-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.rs90
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(())
}