diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-10-23 17:12:23 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-10-23 17:12:23 +0200 |
| commit | 63e9eb92c6e7a1aee6b682ed885d10a6f6fc699c (patch) | |
| tree | a0f1324eed731acdc98755723d761d554f21a576 | |
| parent | 9a7dc2e817881a8c8bd827439e3ecc62ec012b30 (diff) | |
| parent | 158975a5457da513de88d0b12f3adb66ddd666e7 (diff) | |
| download | mullvadvpn-63e9eb92c6e7a1aee6b682ed885d10a6f6fc699c.tar.xz mullvadvpn-63e9eb92c6e7a1aee6b682ed885d10a6f6fc699c.zip | |
Merge branch 'warn-when-reconnecting-in-unsecured-state'
| -rw-r--r-- | CHANGELOG.md | 3 | ||||
| -rw-r--r-- | mullvad-cli/src/cmds/tunnel_state.rs | 10 |
2 files changed, 9 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index b69c10a2ef..f97a7c6792 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,9 @@ Line wrap the file at 100 chars. Th * **Security**: in case of vulnerabilities. ## [Unreleased] +### Changed +- Change `mullvad reconnect` to print an error message and exit with a non-zero exit code if issued + in the disconnected state. ## [2025.13-beta1] - 2025-10-20 diff --git a/mullvad-cli/src/cmds/tunnel_state.rs b/mullvad-cli/src/cmds/tunnel_state.rs index 2db5765f54..11c57aa324 100644 --- a/mullvad-cli/src/cmds/tunnel_state.rs +++ b/mullvad-cli/src/cmds/tunnel_state.rs @@ -1,5 +1,5 @@ use crate::format; -use anyhow::{Result, anyhow}; +use anyhow::{Result, anyhow, bail}; use futures::{Stream, StreamExt}; use mullvad_management_interface::{MullvadProxyClient, client::DaemonEvent}; use mullvad_types::{device::DeviceState, states::TunnelState}; @@ -60,9 +60,11 @@ pub async fn reconnect(wait: bool) -> Result<()> { None }; - if rpc.reconnect_tunnel().await? - && let Some(receiver) = listener - { + let reconnecting = rpc.reconnect_tunnel().await?; + if !reconnecting { + bail!("Not reconnecting due to being in disconnected state") + } + if let Some(receiver) = listener { wait_for_tunnel_state(receiver, |state| match state { TunnelState::Connected { .. } => Ok(true), TunnelState::Error(_) => Err(anyhow!("Failed to reconnect")), |
