summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2025-10-23 17:12:23 +0200
committerMarkus Pettersson <markus.pettersson@mullvad.net>2025-10-23 17:12:23 +0200
commit63e9eb92c6e7a1aee6b682ed885d10a6f6fc699c (patch)
treea0f1324eed731acdc98755723d761d554f21a576
parent9a7dc2e817881a8c8bd827439e3ecc62ec012b30 (diff)
parent158975a5457da513de88d0b12f3adb66ddd666e7 (diff)
downloadmullvadvpn-63e9eb92c6e7a1aee6b682ed885d10a6f6fc699c.tar.xz
mullvadvpn-63e9eb92c6e7a1aee6b682ed885d10a6f6fc699c.zip
Merge branch 'warn-when-reconnecting-in-unsecured-state'
-rw-r--r--CHANGELOG.md3
-rw-r--r--mullvad-cli/src/cmds/tunnel_state.rs10
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")),