diff options
author | Roopesh Chander <roop@roopc.net> | 2018-10-28 17:46:18 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2018-10-28 17:47:01 +0530 |
commit | 269a6c371986b5e7208e9d6ed1523873c9e936dd (patch) | |
tree | 08a8ad380365025f2c45861c947e56684093121a | |
parent | VPN: DNSResolver: Resolve multiple endpoints in parallel (diff) | |
download | wireguard-apple-269a6c371986b5e7208e9d6ed1523873c9e936dd.tar.xz wireguard-apple-269a6c371986b5e7208e9d6ed1523873c9e936dd.zip |
VPN: Remove ability to deactivate the tunnel while resolving DNS
Signed-off-by: Roopesh Chander <roop@roopc.net>
-rw-r--r-- | WireGuard/WireGuard/VPN/TunnelsManager.swift | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/WireGuard/WireGuard/VPN/TunnelsManager.swift b/WireGuard/WireGuard/VPN/TunnelsManager.swift index 2bbbac2..37b4b90 100644 --- a/WireGuard/WireGuard/VPN/TunnelsManager.swift +++ b/WireGuard/WireGuard/VPN/TunnelsManager.swift @@ -13,7 +13,6 @@ protocol TunnelsManagerDelegate: class { enum TunnelsManagerError: Error { case dnsResolutionFailed - case dnsResolutionCancelled case tunnelOperationFailed case attemptingActivationWhenAnotherTunnelIsActive case attemptingActivationWhenTunnelIsNotInactive @@ -252,16 +251,13 @@ class TunnelContainer: NSObject { status = .resolvingEndpointDomains dnsResolver.resolve { [weak self] endpoints in guard let s = self else { return } - if (s.dnsResolver == nil) { - s.status = .inactive - completionHandler(TunnelsManagerError.dnsResolutionCancelled) - return - } + assert(s.status == .resolvingEndpointDomains) + s.dnsResolver = nil guard let endpoints = endpoints else { completionHandler(TunnelsManagerError.dnsResolutionFailed) + s.status = .inactive return } - s.dnsResolver = nil s.startObservingTunnelStatus() let session = (s.tunnelProvider.connection as! NETunnelProviderSession) do { @@ -276,12 +272,10 @@ class TunnelContainer: NSObject { } fileprivate func startDeactivation() { - if (status != .inactive) { - dnsResolver = nil - assert(statusObservationToken != nil) - let session = (tunnelProvider.connection as! NETunnelProviderSession) - session.stopTunnel() - } + assert(status == .active) + assert(statusObservationToken != nil) + let session = (tunnelProvider.connection as! NETunnelProviderSession) + session.stopTunnel() } private func startObservingTunnelStatus() { |