aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-12-10 16:28:41 +0530
committerRoopesh Chander <roop@roopc.net>2018-12-10 16:28:41 +0530
commitb491b9c37188e6fde7972f3f971652891de2228a (patch)
tree6ccbcff34cf01b0c3aed89476f87c4bb6ed6a559
parentTunnels list: Fix AutoLayout error during deletion of a tunnel (diff)
downloadwireguard-apple-b491b9c37188e6fde7972f3f971652891de2228a.tar.xz
wireguard-apple-b491b9c37188e6fde7972f3f971652891de2228a.zip
TunnelsManager: Handle deactivation of a waiting tunnel
Signed-off-by: Roopesh Chander <roop@roopc.net>
-rw-r--r--WireGuard/WireGuard/VPN/TunnelsManager.swift7
1 files changed, 6 insertions, 1 deletions
diff --git a/WireGuard/WireGuard/VPN/TunnelsManager.swift b/WireGuard/WireGuard/VPN/TunnelsManager.swift
index 2276ef7..b0db3c0 100644
--- a/WireGuard/WireGuard/VPN/TunnelsManager.swift
+++ b/WireGuard/WireGuard/VPN/TunnelsManager.swift
@@ -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()
}