diff options
author | Roopesh Chander <roop@roopc.net> | 2019-03-05 15:24:08 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2019-03-05 15:29:28 +0530 |
commit | 3afcee04bef286c486cac28fee23b727a6fb1af8 (patch) | |
tree | 2adcd667f3d88f6b1d9106a626868cc52595c538 /WireGuard/WireGuard/Tunnel/TunnelsManager.swift | |
parent | Importing: Simplify TunnelImporter (diff) | |
download | wireguard-apple-3afcee04bef286c486cac28fee23b727a6fb1af8.tar.xz wireguard-apple-3afcee04bef286c486cac28fee23b727a6fb1af8.zip |
TunnelsManager: addMultiple() should also return the last error
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | WireGuard/WireGuard/Tunnel/TunnelsManager.swift | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/WireGuard/WireGuard/Tunnel/TunnelsManager.swift b/WireGuard/WireGuard/Tunnel/TunnelsManager.swift index e05bea9..a94d63d 100644 --- a/WireGuard/WireGuard/Tunnel/TunnelsManager.swift +++ b/WireGuard/WireGuard/Tunnel/TunnelsManager.swift @@ -148,19 +148,21 @@ class TunnelsManager { } } - func addMultiple(tunnelConfigurations: [TunnelConfiguration], completionHandler: @escaping (UInt) -> Void) { - addMultiple(tunnelConfigurations: ArraySlice(tunnelConfigurations), numberSuccessful: 0, completionHandler: completionHandler) + func addMultiple(tunnelConfigurations: [TunnelConfiguration], completionHandler: @escaping (UInt, TunnelsManagerError?) -> Void) { + addMultiple(tunnelConfigurations: ArraySlice(tunnelConfigurations), numberSuccessful: 0, lastError: nil, completionHandler: completionHandler) } - private func addMultiple(tunnelConfigurations: ArraySlice<TunnelConfiguration>, numberSuccessful: UInt, completionHandler: @escaping (UInt) -> Void) { + private func addMultiple(tunnelConfigurations: ArraySlice<TunnelConfiguration>, numberSuccessful: UInt, lastError: TunnelsManagerError?, completionHandler: @escaping (UInt, TunnelsManagerError?) -> Void) { guard let head = tunnelConfigurations.first else { - completionHandler(numberSuccessful) + completionHandler(numberSuccessful, lastError) return } let tail = tunnelConfigurations.dropFirst() add(tunnelConfiguration: head) { [weak self, tail] result in DispatchQueue.main.async { - self?.addMultiple(tunnelConfigurations: tail, numberSuccessful: numberSuccessful + (result.isSuccess ? 1 : 0), completionHandler: completionHandler) + let numberSuccessful = numberSuccessful + (result.isSuccess ? 1 : 0) + let lastError = lastError ?? (result.error as? TunnelsManagerError) + self?.addMultiple(tunnelConfigurations: tail, numberSuccessful: numberSuccessful, lastError: lastError, completionHandler: completionHandler) } } } |