summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-09-07 10:36:50 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-09-07 10:36:50 +0200
commitdca39b225e54eecc2309bff371e7f6c5262f5203 (patch)
treeed63a256bb1662449979ab59a215af188777c8ad
parent4088d19862c120b5c2ed47834016eb54d92ddcf4 (diff)
parent8cb8bbbb876be2db648eefe51f61b16522552021 (diff)
downloadmullvadvpn-dca39b225e54eecc2309bff371e7f6c5262f5203.tar.xz
mullvadvpn-dca39b225e54eecc2309bff371e7f6c5262f5203.zip
Merge branch 'fix-dev-check-reset'
-rw-r--r--CHANGELOG.md1
-rw-r--r--mullvad-daemon/src/device/mod.rs6
2 files changed, 5 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b7e15ad4f9..d3da5365c8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -65,6 +65,7 @@ Line wrap the file at 100 chars. Th
- Fix error handling during device removal in the desktop app.
- Enable interface settings when app is logged out
- Fix 'mullvad status -v' to include the port of the endpoint when connecting over TCP.
+- Check whether the device is valid when reconnecting from the error state.
#### Windows
- Only use the most recent list of apps to split when resuming from hibernation/sleep if applying
diff --git a/mullvad-daemon/src/device/mod.rs b/mullvad-daemon/src/device/mod.rs
index aa301ca85d..886680fd39 100644
--- a/mullvad-daemon/src/device/mod.rs
+++ b/mullvad-daemon/src/device/mod.rs
@@ -980,7 +980,7 @@ impl TunnelStateChangeHandler {
if endpoint.tunnel_type != TunnelType::Wireguard {
return;
}
- self.wg_retry_attempt += 1;
+ self.wg_retry_attempt = self.wg_retry_attempt.wrapping_add(1);
if self.wg_retry_attempt % WG_DEVICE_CHECK_THRESHOLD == 0 {
let handle = self.manager.clone();
let check_validity = self.check_validity.clone();
@@ -1000,7 +1000,9 @@ impl TunnelStateChangeHandler {
});
}
}
- TunnelStateTransition::Connected(_) | TunnelStateTransition::Disconnected => {
+ TunnelStateTransition::Error(_)
+ | TunnelStateTransition::Connected(_)
+ | TunnelStateTransition::Disconnected => {
self.check_validity.store(true, Ordering::SeqCst);
self.wg_retry_attempt = 0;
}