]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
Tunnels manager: Keep track of NETunnelProviderManager's isOnDemandEnabled property
authorRoopesh Chander <roop@roopc.net>
Mon, 12 Nov 2018 10:34:03 +0000 (16:04 +0530)
committerRoopesh Chander <roop@roopc.net>
Mon, 12 Nov 2018 13:54:13 +0000 (19:24 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/UI/iOS/TunnelsListTableViewController.swift
WireGuard/WireGuard/VPN/TunnelsManager.swift

index ba6174326e14c9c7b94fba81754dd5721fd2ca21..af06eb6be93f78e402436acc3ed8f45d3e2fc2f4 100644 (file)
@@ -226,10 +226,10 @@ class TunnelsListTableViewController: UIViewController {
 
     func refreshTunnelConnectionStatuses() {
         if let tunnelsManager = tunnelsManager {
-            tunnelsManager.refreshConnectionStatuses()
+            tunnelsManager.refreshStatuses()
         } else {
             onTunnelsManagerReady = { tunnelsManager in
-                tunnelsManager.refreshConnectionStatuses()
+                tunnelsManager.refreshStatuses()
             }
         }
     }
index d75e6c056ef238f7e097275b21ea12d0ebc7c778..935036d8a91a4e2b980b43f9d431dcff3c945136 100644 (file)
@@ -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()
         }