summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2022-03-25 13:44:43 +0100
committerAndrej Mihajlov <and@mullvad.net>2022-03-25 16:33:14 +0100
commit033df3872d425dfaf640823b2236c39df7168aca (patch)
tree66d8c43ebd8d06d034e58046e0c1a7e1d49d5bae
parent66ca67ed36b0345148f622c3255516808320421a (diff)
downloadmullvadvpn-033df3872d425dfaf640823b2236c39df7168aca.tar.xz
mullvadvpn-033df3872d425dfaf640823b2236c39df7168aca.zip
TunnelManager: refresh tunnel status only when connecting or reasserting to pick up the next relay
-rw-r--r--ios/MullvadVPN/TunnelManager/TunnelManager.swift13
1 files changed, 10 insertions, 3 deletions
diff --git a/ios/MullvadVPN/TunnelManager/TunnelManager.swift b/ios/MullvadVPN/TunnelManager/TunnelManager.swift
index 10af385a93..74e36770c6 100644
--- a/ios/MullvadVPN/TunnelManager/TunnelManager.swift
+++ b/ios/MullvadVPN/TunnelManager/TunnelManager.swift
@@ -279,10 +279,17 @@ final class TunnelManager: TunnelManagerStateDelegate {
self.logger.error(chainedError: error, message: "Failed to reconnect the tunnel.")
}
- // Refresh tunnel status since reasserting may not be lowered until the tunnel is fully
+ // Refresh tunnel status only when connecting or reasserting to pick up the next relay,
+ // since both states may persist for a long period of time until the tunnel is fully
// connected.
- self.logger.debug("Refresh tunnel status due to reconnect.")
- self.refreshTunnelStatus()
+ switch self.tunnelState {
+ case .connecting, .reconnecting:
+ self.logger.debug("Refresh tunnel status due to reconnect.")
+ self.refreshTunnelStatus()
+
+ default:
+ break
+ }
DispatchQueue.main.async {
completionHandler?()