diff options
author | Roopesh Chander <roop@roopc.net> | 2021-08-03 16:35:18 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2021-08-03 16:35:18 +0530 |
commit | cfd1b16801cfbd7ece9044b536db831d58a0577b (patch) | |
tree | 1268a7be0b1cd00d487107968dba36567c154779 /Sources/WireGuardApp/Tunnel/TunnelsManager.swift | |
parent | UI: When setting on-demand, avoid a second saveToPreferences() call (diff) | |
download | wireguard-apple-cfd1b16801cfbd7ece9044b536db831d58a0577b.tar.xz wireguard-apple-cfd1b16801cfbd7ece9044b536db831d58a0577b.zip |
UI: Consider on-demand to be enabled iff the tunnel provider is enabled
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | Sources/WireGuardApp/Tunnel/TunnelsManager.swift | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Sources/WireGuardApp/Tunnel/TunnelsManager.swift b/Sources/WireGuardApp/Tunnel/TunnelsManager.swift index c6d4f2d..2865f7a 100644 --- a/Sources/WireGuardApp/Tunnel/TunnelsManager.swift +++ b/Sources/WireGuardApp/Tunnel/TunnelsManager.swift @@ -344,7 +344,8 @@ class TunnelsManager { func setOnDemandEnabled(_ isOnDemandEnabled: Bool, on tunnel: TunnelContainer, completionHandler: @escaping (TunnelsManagerError?) -> Void) { let tunnelProviderManager = tunnel.tunnelProvider - guard tunnelProviderManager.isOnDemandEnabled != isOnDemandEnabled else { + let isCurrentlyEnabled = (tunnelProviderManager.isOnDemandEnabled && tunnelProviderManager.isEnabled) + guard isCurrentlyEnabled != isOnDemandEnabled else { completionHandler(nil) return } @@ -571,7 +572,7 @@ class TunnelContainer: NSObject { fileprivate var tunnelProvider: NETunnelProviderManager { didSet { - isActivateOnDemandEnabled = tunnelProvider.isOnDemandEnabled + isActivateOnDemandEnabled = tunnelProvider.isOnDemandEnabled && tunnelProvider.isEnabled hasOnDemandRules = !(tunnelProvider.onDemandRules ?? []).isEmpty } } @@ -594,7 +595,7 @@ class TunnelContainer: NSObject { name = tunnel.localizedDescription ?? "Unnamed" let status = TunnelStatus(from: tunnel.connection.status) self.status = status - isActivateOnDemandEnabled = tunnel.isOnDemandEnabled + isActivateOnDemandEnabled = tunnel.isOnDemandEnabled && tunnel.isEnabled hasOnDemandRules = !(tunnel.onDemandRules ?? []).isEmpty tunnelProvider = tunnel super.init() |