summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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?()