diff options
| author | Jon Petersson <jon.petersson@kvadrat.se> | 2023-09-05 12:16:47 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2023-09-08 15:37:44 +0200 |
| commit | 32ce2808afb548d04cc36b3a92fdd0050560b1ad (patch) | |
| tree | fd4cc9982f447aee77a90c4f54df6eee14a8a7e7 | |
| parent | 15342c2cac143a6267dd1cd508644b1e74c530f7 (diff) | |
| download | mullvadvpn-32ce2808afb548d04cc36b3a92fdd0050560b1ad.tar.xz mullvadvpn-32ce2808afb548d04cc36b3a92fdd0050560b1ad.zip | |
Fix Swiftlint warnings in MapConnectionStatusOperation
| -rw-r--r-- | ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift | 102 |
1 files changed, 57 insertions, 45 deletions
diff --git a/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift b/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift index 5c0d4f83a8..da232dcde4 100644 --- a/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift +++ b/ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift @@ -47,23 +47,7 @@ class MapConnectionStatusOperation: AsyncOperation { switch connectionStatus { case .connecting: - switch tunnelState { - case .connecting: - break - - default: - interactor.updateTunnelStatus { tunnelStatus in - tunnelStatus.state = .connecting(nil) - } - } - - fetchTunnelStatus(tunnel: tunnel) { packetTunnelStatus in - if packetTunnelStatus.isNetworkReachable { - return packetTunnelStatus.tunnelRelay.map { .connecting($0) } - } else { - return .waitingForConnectivity(.noConnection) - } - } + handleConnectingState(tunnelState, tunnel) return case .reasserting: @@ -87,36 +71,10 @@ class MapConnectionStatusOperation: AsyncOperation { return case .disconnected: - switch tunnelState { - case .pendingReconnect: - logger.debug("Ignore disconnected state when pending reconnect.") - - case .disconnecting(.reconnect): - logger.debug("Restart the tunnel on disconnect.") - interactor.updateTunnelStatus { tunnelStatus in - tunnelStatus = TunnelStatus() - tunnelStatus.state = .pendingReconnect - } - interactor.startTunnel() - - default: - setTunnelDisconnectedStatus() - } + handleDisconnectedState(tunnelState) case .disconnecting: - switch tunnelState { - case .disconnecting: - break - default: - interactor.updateTunnelStatus { tunnelStatus in - let packetTunnelStatus = tunnelStatus.packetTunnelStatus - - tunnelStatus = TunnelStatus() - tunnelStatus.state = packetTunnelStatus.isNetworkReachable - ? .disconnecting(.nothing) - : .waitingForConnectivity(.noNetwork) - } - } + handleDisconnectionState(tunnelState) case .invalid: setTunnelDisconnectedStatus() @@ -132,6 +90,60 @@ class MapConnectionStatusOperation: AsyncOperation { request?.cancel() } + private func handleConnectingState(_ tunnelState: TunnelState, _ tunnel: Tunnel) { + switch tunnelState { + case .connecting: + break + + default: + interactor.updateTunnelStatus { tunnelStatus in + tunnelStatus.state = .connecting(nil) + } + } + + fetchTunnelStatus(tunnel: tunnel) { packetTunnelStatus in + if packetTunnelStatus.isNetworkReachable { + return packetTunnelStatus.tunnelRelay.map { .connecting($0) } + } else { + return .waitingForConnectivity(.noConnection) + } + } + } + + private func handleDisconnectionState(_ tunnelState: TunnelState) { + switch tunnelState { + case .disconnecting: + break + default: + interactor.updateTunnelStatus { tunnelStatus in + let packetTunnelStatus = tunnelStatus.packetTunnelStatus + + tunnelStatus = TunnelStatus() + tunnelStatus.state = packetTunnelStatus.isNetworkReachable + ? .disconnecting(.nothing) + : .waitingForConnectivity(.noNetwork) + } + } + } + + private func handleDisconnectedState(_ tunnelState: TunnelState) { + switch tunnelState { + case .pendingReconnect: + logger.debug("Ignore disconnected state when pending reconnect.") + + case .disconnecting(.reconnect): + logger.debug("Restart the tunnel on disconnect.") + interactor.updateTunnelStatus { tunnelStatus in + tunnelStatus = TunnelStatus() + tunnelStatus.state = .pendingReconnect + } + interactor.startTunnel() + + default: + setTunnelDisconnectedStatus() + } + } + private func setTunnelDisconnectedStatus() { interactor.updateTunnelStatus { tunnelStatus in tunnelStatus = TunnelStatus() |
