summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJon Petersson <jon.petersson@kvadrat.se>2023-09-05 12:16:47 +0200
committerBug Magnet <marco.nikic@mullvad.net>2023-09-08 15:37:44 +0200
commit32ce2808afb548d04cc36b3a92fdd0050560b1ad (patch)
treefd4cc9982f447aee77a90c4f54df6eee14a8a7e7
parent15342c2cac143a6267dd1cd508644b1e74c530f7 (diff)
downloadmullvadvpn-32ce2808afb548d04cc36b3a92fdd0050560b1ad.tar.xz
mullvadvpn-32ce2808afb548d04cc36b3a92fdd0050560b1ad.zip
Fix Swiftlint warnings in MapConnectionStatusOperation
-rw-r--r--ios/MullvadVPN/TunnelManager/MapConnectionStatusOperation.swift102
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()