@objc dynamic var status: TunnelStatus
@objc dynamic var isActivateOnDemandEnabled: Bool
+ @objc dynamic var hasOnDemandRules: Bool
var isAttemptingActivation = false {
didSet {
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
let status = TunnelStatus(from: tunnel.connection.status)
self.status = status
isActivateOnDemandEnabled = tunnel.isOnDemandEnabled
+ hasOnDemandRules = !(tunnel.onDemandRules ?? []).isEmpty
tunnelProvider = tunnel
super.init()
}
return
}
status = TunnelStatus(from: tunnelProvider.connection.status)
- isActivateOnDemandEnabled = tunnelProvider.isOnDemandEnabled
}
fileprivate func startActivation(recursionCount: UInt = 0, lastError: Error? = nil, activationDelegate: TunnelsManagerActivationDelegate?) {