]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
TunnelsManager: Handle deactivation of a waiting tunnel
authorRoopesh Chander <roop@roopc.net>
Mon, 10 Dec 2018 10:58:41 +0000 (16:28 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 10 Dec 2018 10:58:41 +0000 (16:28 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/VPN/TunnelsManager.swift

index 2276ef7a1c24d4299c760794f3a9c720b60fcf79..b0db3c075d44dfc39d6a8fd7ae5c1de831a033e8 100644 (file)
@@ -402,8 +402,13 @@ class TunnelContainer: NSObject {
     }
 
     fileprivate func startDeactivation() {
-        assert(status == .active || status == .waiting)
         let session = (tunnelProvider.connection as! NETunnelProviderSession)
+        if (status == .waiting && (session.status == .disconnected || session.status == .invalid)) {
+            status = .inactive
+            self.onDeactivationComplete?()
+            self.onDeactivationComplete = nil
+            return
+        }
         session.stopTunnel()
     }