diff options
author | Eric Kuck <eric@bluelinelabs.com> | 2018-12-20 22:52:45 -0600 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-12-21 16:42:16 +0100 |
commit | 8553723e04c4d63b99e669df2e43fc4a914b7f9d (patch) | |
tree | e3b7b25777e47455a787fa590cf00d1c25cbdc5d /WireGuard/WireGuard/Tunnel | |
parent | NE: simplify logic (diff) | |
download | wireguard-apple-8553723e04c4d63b99e669df2e43fc4a914b7f9d.tar.xz wireguard-apple-8553723e04c4d63b99e669df2e43fc4a914b7f9d.zip |
Updated NETunnelProvider save format
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
Diffstat (limited to '')
-rw-r--r-- | WireGuard/WireGuard/Tunnel/TunnelsManager.swift | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/WireGuard/WireGuard/Tunnel/TunnelsManager.swift b/WireGuard/WireGuard/Tunnel/TunnelsManager.swift index f6dcc32..b56cb37 100644 --- a/WireGuard/WireGuard/Tunnel/TunnelsManager.swift +++ b/WireGuard/WireGuard/Tunnel/TunnelsManager.swift @@ -41,7 +41,14 @@ class TunnelsManager { completionHandler(.failure(TunnelsManagerError.systemErrorOnListingTunnels(systemError: error))) return } - completionHandler(.success(TunnelsManager(tunnelProviders: managers ?? []))) + + let tunnelManagers = managers ?? [] + tunnelManagers.forEach { + if ($0.protocolConfiguration as? NETunnelProviderProtocol)?.migrateConfigurationIfNeeded() == true { + $0.saveToPreferences { _ in } + } + } + completionHandler(.success(TunnelsManager(tunnelProviders: tunnelManagers))) } #endif } @@ -309,6 +316,7 @@ class TunnelsManager { NotificationCenter.default.removeObserver(statusObservationToken) } } + } class TunnelContainer: NSObject { @@ -344,6 +352,14 @@ class TunnelContainer: NSObject { fileprivate let tunnelProvider: NETunnelProviderManager private var lastTunnelConnectionStatus: NEVPNStatus? + var tunnelConfiguration: TunnelConfiguration? { + return (tunnelProvider.protocolConfiguration as? NETunnelProviderProtocol)?.tunnelConfiguration + } + + var activateOnDemandSetting: ActivateOnDemandSetting { + return ActivateOnDemandSetting(from: tunnelProvider) + } + init(tunnel: NETunnelProviderManager) { name = tunnel.localizedDescription ?? "Unnamed" let status = TunnelStatus(from: tunnel.connection.status) @@ -353,14 +369,6 @@ class TunnelContainer: NSObject { super.init() } - func tunnelConfiguration() -> TunnelConfiguration? { - return (tunnelProvider.protocolConfiguration as? NETunnelProviderProtocol)?.tunnelConfiguration() - } - - func activateOnDemandSetting() -> ActivateOnDemandSetting { - return ActivateOnDemandSetting(from: tunnelProvider) - } - func refreshStatus() { let status = TunnelStatus(from: tunnelProvider.connection.status) self.status = status |