aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/VPN/TunnelsManager.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-12-06 16:30:11 +0530
committerRoopesh Chander <roop@roopc.net>2018-12-07 12:36:19 +0530
commit782dd2ea4e4143c8aa78f314cb9a20bbc743b99c (patch)
tree74c0ac40345073a81d2d881acedfec0ba913b864 /WireGuard/WireGuard/VPN/TunnelsManager.swift
parentError handling: Introduce a WireGuardAppError protocol to manage errors (diff)
downloadwireguard-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.swift30
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))