diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2022-07-28 14:26:17 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2022-07-28 16:26:05 +0200 |
| commit | 9613697420561830eb73cbf19fc424909e048bf9 (patch) | |
| tree | 0fb10bea09861eba2c4aa06c00f4800819925c76 | |
| parent | bca3c4b7d531c425f431ead391ccd03c684d1a2c (diff) | |
| download | mullvadvpn-9613697420561830eb73cbf19fc424909e048bf9.tar.xz mullvadvpn-9613697420561830eb73cbf19fc424909e048bf9.zip | |
Store PacketTunnelStatus within TunnelStatus to avoid duplicating the same fields
| -rw-r--r-- | ios/MullvadVPN/TunnelManager/TunnelManager.swift | 2 | ||||
| -rw-r--r-- | ios/MullvadVPN/TunnelManager/TunnelManagerState.swift | 6 | ||||
| -rw-r--r-- | ios/MullvadVPN/TunnelManager/TunnelState.swift | 21 |
3 files changed, 11 insertions, 18 deletions
diff --git a/ios/MullvadVPN/TunnelManager/TunnelManager.swift b/ios/MullvadVPN/TunnelManager/TunnelManager.swift index 57ef51b2af..6b82105427 100644 --- a/ios/MullvadVPN/TunnelManager/TunnelManager.swift +++ b/ios/MullvadVPN/TunnelManager/TunnelManager.swift @@ -597,7 +597,7 @@ final class TunnelManager: TunnelManagerStateDelegate { case .connecting, .reconnecting: // Start polling tunnel status to keep the relay information up to date // while the tunnel process is trying to connect. - startPollingTunnelStatus(connectingDate: newTunnelStatus.connectingDate) + startPollingTunnelStatus(connectingDate: newTunnelStatus.packetTunnelStatus.connectingDate) case .pendingReconnect, .connected, .disconnecting, .disconnected: // Stop polling tunnel status once connection moved to final state. diff --git a/ios/MullvadVPN/TunnelManager/TunnelManagerState.swift b/ios/MullvadVPN/TunnelManager/TunnelManagerState.swift index 002e3e3862..c777052c39 100644 --- a/ios/MullvadVPN/TunnelManager/TunnelManagerState.swift +++ b/ios/MullvadVPN/TunnelManager/TunnelManagerState.swift @@ -43,11 +43,7 @@ extension TunnelManager { private var _isLoadedConfiguration = false private var _tunnelSettings: TunnelSettingsV2? private var _tunnelObject: Tunnel? - private var _tunnelStatus = TunnelStatus( - isNetworkReachable: false, - connectingDate: nil, - state: .disconnected - ) + private var _tunnelStatus = TunnelStatus() var isLoadedConfiguration: Bool { get { diff --git a/ios/MullvadVPN/TunnelManager/TunnelState.swift b/ios/MullvadVPN/TunnelManager/TunnelState.swift index bec15a9044..ee65346f82 100644 --- a/ios/MullvadVPN/TunnelManager/TunnelState.swift +++ b/ios/MullvadVPN/TunnelManager/TunnelState.swift @@ -10,25 +10,22 @@ import Foundation /// A struct describing the tunnel status. struct TunnelStatus: Equatable, CustomStringConvertible { - /// Whether netowork is reachable. - var isNetworkReachable: Bool - - /// When the packet tunnel started connecting. - var connectingDate: Date? + /// Tunnel status returned by the tunnel process. + var packetTunnelStatus = PacketTunnelStatus() /// Tunnel state. - var state: TunnelState + var state: TunnelState = .disconnected var description: String { var s = "\(state), network " - if isNetworkReachable { + if packetTunnelStatus.isNetworkReachable { s += "reachable" } else { s += "unreachable" } - if let connectingDate = connectingDate { + if let connectingDate = packetTunnelStatus.connectingDate { s += ", started connecting at \(connectingDate.logFormatDate())" } @@ -37,8 +34,7 @@ struct TunnelStatus: Equatable, CustomStringConvertible { /// Updates the tunnel status from packet tunnel status, mapping relay to tunnel state. mutating func update(from packetTunnelStatus: PacketTunnelStatus, mappingRelayToState mapper: (PacketTunnelRelay?) -> TunnelState?) { - isNetworkReachable = packetTunnelStatus.isNetworkReachable - connectingDate = packetTunnelStatus.connectingDate + self.packetTunnelStatus = packetTunnelStatus if let newState = mapper(packetTunnelStatus.tunnelRelay) { state = newState @@ -47,8 +43,9 @@ struct TunnelStatus: Equatable, CustomStringConvertible { /// Resets all fields to their defaults and assigns the next tunnel state. mutating func reset(to newState: TunnelState) { - isNetworkReachable = true - connectingDate = nil + let currentRelay = packetTunnelStatus.tunnelRelay + packetTunnelStatus = PacketTunnelStatus() + packetTunnelStatus.tunnelRelay = currentRelay state = newState } } |
