diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2023-11-23 15:36:11 +0100 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2023-11-23 15:36:11 +0100 |
| commit | ef8c2cf66d7bdb3a93e39b3a3b4836bc868e1825 (patch) | |
| tree | 62dc8c29a6a58d52ea61023e7c12ea5925cb0ac0 /mullvad-cli/src/cmds/debug.rs | |
| parent | 8f397584c66dfe8a7a1622ae3a3d31ab05228778 (diff) | |
| parent | efdef80f10e7f6de35b99828481581e76bc5e422 (diff) | |
| download | mullvadvpn-ef8c2cf66d7bdb3a93e39b3a3b4836bc868e1825.tar.xz mullvadvpn-ef8c2cf66d7bdb3a93e39b3a3b4836bc868e1825.zip | |
Merge branch 'error-handling-wrong-hostname-435'
Diffstat (limited to 'mullvad-cli/src/cmds/debug.rs')
| -rw-r--r-- | mullvad-cli/src/cmds/debug.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/mullvad-cli/src/cmds/debug.rs b/mullvad-cli/src/cmds/debug.rs new file mode 100644 index 0000000000..47db11ee05 --- /dev/null +++ b/mullvad-cli/src/cmds/debug.rs @@ -0,0 +1,40 @@ +use anyhow::Result; +use mullvad_management_interface::MullvadProxyClient; +use mullvad_types::relay_constraints::{Constraint, RelayConstraints, RelaySettings}; + +#[derive(clap::Subcommand, Debug)] +pub enum DebugCommands { + /// Block all internet connection by setting an invalid relay constraint. + BlockConnection, +} + +impl DebugCommands { + pub async fn handle(self) -> Result<()> { + match self { + DebugCommands::BlockConnection => { + let mut rpc = MullvadProxyClient::new().await?; + let settings = rpc.get_settings().await?; + + let relay_settings = settings.get_relay_settings(); + let mut constraints = match relay_settings { + RelaySettings::Normal(normal) => normal, + RelaySettings::CustomTunnelEndpoint(_custom) => { + println!("Removing custom relay settings"); + RelayConstraints::default() + } + }; + constraints.location = Constraint::Only( + mullvad_types::relay_constraints::LocationConstraint::Location( + mullvad_types::relay_constraints::GeographicLocationConstraint::Country( + "xx".into(), + ), + ), + ); + rpc.set_relay_settings(RelaySettings::Normal(constraints)) + .await?; + eprintln!("WARNING: ENTERED BLOCKED MODE"); + Ok(()) + } + } + } +} |
