diff options
author | Roopesh Chander <roop@roopc.net> | 2021-07-24 23:53:31 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2021-07-28 03:18:01 +0530 |
commit | 40f18de4d28b9ac7779be4f06b5a0fc35061e8ec (patch) | |
tree | 073f3a1a15b5bb8e58a5af60311974b9cd488360 | |
parent | Global: bump copyright year (diff) | |
download | wireguard-apple-40f18de4d28b9ac7779be4f06b5a0fc35061e8ec.tar.xz wireguard-apple-40f18de4d28b9ac7779be4f06b5a0fc35061e8ec.zip |
UI: TunnelsManager: Add TunnelContainer.hasOnDemandRules
Signed-off-by: Roopesh Chander <roop@roopc.net>
-rw-r--r-- | Sources/WireGuardApp/Tunnel/TunnelsManager.swift | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Sources/WireGuardApp/Tunnel/TunnelsManager.swift b/Sources/WireGuardApp/Tunnel/TunnelsManager.swift index 1e06671..c73891e 100644 --- a/Sources/WireGuardApp/Tunnel/TunnelsManager.swift +++ b/Sources/WireGuardApp/Tunnel/TunnelsManager.swift @@ -498,6 +498,7 @@ class TunnelContainer: NSObject { @objc dynamic var status: TunnelStatus @objc dynamic var isActivateOnDemandEnabled: Bool + @objc dynamic var hasOnDemandRules: Bool var isAttemptingActivation = false { didSet { @@ -524,7 +525,12 @@ class TunnelContainer: NSObject { var activationTimer: Timer? var deactivationTimer: Timer? - fileprivate var tunnelProvider: NETunnelProviderManager + fileprivate var tunnelProvider: NETunnelProviderManager { + didSet { + isActivateOnDemandEnabled = tunnelProvider.isOnDemandEnabled + hasOnDemandRules = !(tunnelProvider.onDemandRules ?? []).isEmpty + } + } var tunnelConfiguration: TunnelConfiguration? { return tunnelProvider.tunnelConfiguration @@ -545,6 +551,7 @@ class TunnelContainer: NSObject { let status = TunnelStatus(from: tunnel.connection.status) self.status = status isActivateOnDemandEnabled = tunnel.isOnDemandEnabled + hasOnDemandRules = !(tunnel.onDemandRules ?? []).isEmpty tunnelProvider = tunnel super.init() } @@ -571,7 +578,6 @@ class TunnelContainer: NSObject { return } status = TunnelStatus(from: tunnelProvider.connection.status) - isActivateOnDemandEnabled = tunnelProvider.isOnDemandEnabled } fileprivate func startActivation(recursionCount: UInt = 0, lastError: Error? = nil, activationDelegate: TunnelsManagerActivationDelegate?) { |