From: Roopesh Chander Date: Sat, 24 Jul 2021 18:23:31 +0000 (+0530) Subject: UI: TunnelsManager: Add TunnelContainer.hasOnDemandRules X-Git-Tag: 1.0.14-25~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=40f18de4d28b9ac7779be4f06b5a0fc35061e8ec;p=thirdparty%2Fwireguard-apple.git UI: TunnelsManager: Add TunnelContainer.hasOnDemandRules Signed-off-by: Roopesh Chander --- 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?) {