aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2021-08-03 16:35:18 +0530
committerRoopesh Chander <roop@roopc.net>2021-08-03 16:35:18 +0530
commitcfd1b16801cfbd7ece9044b536db831d58a0577b (patch)
tree1268a7be0b1cd00d487107968dba36567c154779
parentUI: When setting on-demand, avoid a second saveToPreferences() call (diff)
downloadwireguard-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>
-rw-r--r--Sources/WireGuardApp/Tunnel/TunnelsManager.swift7
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()