From 792301e50e2ce2d9660420fbee4790d105d3af19 Mon Sep 17 00:00:00 2001 From: Jeroen Leenarts Date: Thu, 16 Aug 2018 22:05:22 +0200 Subject: [PATCH] If the selected tunnel is not "enabled", make it enabled. --- WireGuard/Coordinators/AppCoordinator.swift | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/WireGuard/Coordinators/AppCoordinator.swift b/WireGuard/Coordinators/AppCoordinator.swift index f49819a..75657f0 100644 --- a/WireGuard/Coordinators/AppCoordinator.swift +++ b/WireGuard/Coordinators/AppCoordinator.swift @@ -166,11 +166,20 @@ extension AppCoordinator: TunnelsTableViewControllerDelegate { // Should the manager be enabled? let manager = providerManager(for: tunnel) - let session = manager?.connection as! NETunnelProviderSession //swiftlint:disable:this force_cast - do { - try session.startTunnel() - } catch let error { - os_log("error starting tunnel: %{public}@", log: Log.general, type: .error, error.localizedDescription) + manager?.isEnabled = true + manager?.saveToPreferences { (error) in + if let error = error { + os_log("error saving preferences: %{public}@", log: Log.general, type: .error, error.localizedDescription) + return + } + os_log("saved preferences", log: Log.general, type: .info) + + let session = manager?.connection as! NETunnelProviderSession //swiftlint:disable:this force_cast + do { + try session.startTunnel() + } catch let error { + os_log("error starting tunnel: %{public}@", log: Log.general, type: .error, error.localizedDescription) + } } }