aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/VPN/TunnelsManager.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-11-12 16:04:03 +0530
committerRoopesh Chander <roop@roopc.net>2018-11-12 19:24:13 +0530
commit923d039a78e8a4a026bda684ce4b84956e074353 (patch)
tree21029f46dc8bebe50164b364b17171ecf3c41dc5 /WireGuard/WireGuard/VPN/TunnelsManager.swift
parentTunnel edit: Update for VPN-on-demand changes (diff)
downloadwireguard-apple-923d039a78e8a4a026bda684ce4b84956e074353.tar.xz
wireguard-apple-923d039a78e8a4a026bda684ce4b84956e074353.zip
Tunnels manager: Keep track of NETunnelProviderManager's isOnDemandEnabled property
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r--WireGuard/WireGuard/VPN/TunnelsManager.swift11
1 files changed, 8 insertions, 3 deletions
diff --git a/WireGuard/WireGuard/VPN/TunnelsManager.swift b/WireGuard/WireGuard/VPN/TunnelsManager.swift
index d75e6c0..935036d 100644
--- a/WireGuard/WireGuard/VPN/TunnelsManager.swift
+++ b/WireGuard/WireGuard/VPN/TunnelsManager.swift
@@ -158,6 +158,8 @@ class TunnelsManager {
tunnel.beginRestart()
}
+ tunnel.isActivateOnDemandEnabled = tunnelProviderManager.isOnDemandEnabled
+
completionHandler(nil)
}
}
@@ -215,9 +217,9 @@ class TunnelsManager {
tunnel.startDeactivation()
}
- func refreshConnectionStatuses() {
+ func refreshStatuses() {
for t in tunnels {
- t.refreshConnectionStatus()
+ t.refreshStatus()
}
}
}
@@ -225,6 +227,7 @@ class TunnelsManager {
class TunnelContainer: NSObject {
@objc dynamic var name: String
@objc dynamic var status: TunnelStatus
+ @objc dynamic var isActivateOnDemandEnabled: Bool
var onDeactivationComplete: (() -> Void)?
@@ -235,6 +238,7 @@ class TunnelContainer: NSObject {
self.name = tunnel.localizedDescription ?? "Unnamed"
let status = TunnelStatus(from: tunnel.connection.status)
self.status = status
+ self.isActivateOnDemandEnabled = tunnel.isOnDemandEnabled
self.tunnelProvider = tunnel
super.init()
if (status != .inactive) {
@@ -250,9 +254,10 @@ class TunnelContainer: NSObject {
return ActivateOnDemandSetting(from: tunnelProvider)
}
- func refreshConnectionStatus() {
+ func refreshStatus() {
let status = TunnelStatus(from: self.tunnelProvider.connection.status)
self.status = status
+ self.isActivateOnDemandEnabled = self.tunnelProvider.isOnDemandEnabled
if (status != .inactive) {
startObservingTunnelStatus()
}