]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
TunnelsManager: fix use of arrayslice in addMultiple
authorJason A. Donenfeld <Jason@zx2c4.com>
Sat, 3 Nov 2018 03:37:56 +0000 (04:37 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Sat, 3 Nov 2018 03:37:56 +0000 (04:37 +0100)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
WireGuard/WireGuard/VPN/TunnelsManager.swift

index 03470e63d834af77dc8ab9c53d40ca7d429b7920..925b5ced177c26b817dd4761596bfb74f29ba747 100644 (file)
@@ -102,17 +102,16 @@ class TunnelsManager {
     }
 
     func addMultiple(tunnelConfigurations: [TunnelConfiguration], completionHandler: @escaping (UInt) -> Void) {
-        addMultiple(tunnelConfigurations: tunnelConfigurations[0...], numberSuccessful: 0, completionHandler: completionHandler)
+        addMultiple(tunnelConfigurations: ArraySlice(tunnelConfigurations), numberSuccessful: 0, completionHandler: completionHandler)
     }
 
     private func addMultiple(tunnelConfigurations: ArraySlice<TunnelConfiguration>, numberSuccessful: UInt, completionHandler: @escaping (UInt) -> Void) {
-        if tunnelConfigurations.isEmpty {
+        guard let head = tunnelConfigurations.first else {
             completionHandler(numberSuccessful)
             return
         }
-        let head = tunnelConfigurations.first!
-        let tail = tunnelConfigurations[1...]
-        self.add(tunnelConfiguration: head) { [weak self] (tunnel, error) in
+        let tail = tunnelConfigurations.dropFirst()
+        self.add(tunnelConfiguration: head) { [weak self, tail] (tunnel, error) in
             DispatchQueue.main.async {
                 self?.addMultiple(tunnelConfigurations: tail, numberSuccessful: numberSuccessful + (error == nil ? 1 : 0), completionHandler: completionHandler)
             }