diff options
author | Roopesh Chander <roop@roopc.net> | 2018-12-06 16:30:11 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2018-12-07 12:36:19 +0530 |
commit | 782dd2ea4e4143c8aa78f314cb9a20bbc743b99c (patch) | |
tree | 74c0ac40345073a81d2d881acedfec0ba913b864 /WireGuard/WireGuard/VPN/TunnelsManager.swift | |
parent | Error handling: Introduce a WireGuardAppError protocol to manage errors (diff) | |
download | wireguard-apple-782dd2ea4e4143c8aa78f314cb9a20bbc743b99c.tar.xz wireguard-apple-782dd2ea4e4143c8aa78f314cb9a20bbc743b99c.zip |
Error handling: Introduce a WireGuardResult type to handle errors in callbacks across the app
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | WireGuard/WireGuard/VPN/TunnelsManager.swift | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/WireGuard/WireGuard/VPN/TunnelsManager.swift b/WireGuard/WireGuard/VPN/TunnelsManager.swift index 03d1a45..4aada0c 100644 --- a/WireGuard/WireGuard/VPN/TunnelsManager.swift +++ b/WireGuard/WireGuard/VPN/TunnelsManager.swift @@ -55,32 +55,6 @@ enum TunnelsManagerError: WireGuardAppError { } } -enum TunnelsManagerResult<T> { - case success(T) - case failure(TunnelsManagerError) - - var value: T? { - switch (self) { - case .success(let v): return v - case .failure(_): return nil - } - } - - var error: TunnelsManagerError? { - switch (self) { - case .success(_): return nil - case .failure(let e): return e - } - } - - var isSuccess: Bool { - switch (self) { - case .success(_): return true - case .failure(_): return false - } - } -} - class TunnelsManager { private var tunnels: [TunnelContainer] @@ -95,7 +69,7 @@ class TunnelsManager { self.tunnels = tunnelProviders.map { TunnelContainer(tunnel: $0) }.sorted { $0.name < $1.name } } - static func create(completionHandler: @escaping (TunnelsManagerResult<TunnelsManager>) -> Void) { + static func create(completionHandler: @escaping (WireGuardResult<TunnelsManager>) -> Void) { #if targetEnvironment(simulator) // NETunnelProviderManager APIs don't work on the simulator completionHandler(.success(TunnelsManager(tunnelProviders: []))) @@ -113,7 +87,7 @@ class TunnelsManager { func add(tunnelConfiguration: TunnelConfiguration, activateOnDemandSetting: ActivateOnDemandSetting = ActivateOnDemandSetting.defaultSetting, - completionHandler: @escaping (TunnelsManagerResult<TunnelContainer>) -> Void) { + completionHandler: @escaping (WireGuardResult<TunnelContainer>) -> Void) { let tunnelName = tunnelConfiguration.interface.name if tunnelName.isEmpty { completionHandler(.failure(TunnelsManagerError.tunnelNameEmpty)) |