]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
TunnelsManager: Ability to refresh connection statuses
authorRoopesh Chander <roop@roopc.net>
Fri, 9 Nov 2018 13:49:32 +0000 (19:19 +0530)
committerRoopesh Chander <roop@roopc.net>
Fri, 9 Nov 2018 13:49:32 +0000 (19:19 +0530)
Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/WireGuard/VPN/TunnelsManager.swift

index ba4ef7fe680e9acafd7170e5765eccd02732e282..682aa79540ff33fcb1aeab716546994751a520a1 100644 (file)
@@ -208,6 +208,12 @@ class TunnelsManager {
         }
         tunnel.startDeactivation()
     }
+
+    func refreshConnectionStatuses() {
+        for t in tunnels {
+            t.refreshConnectionStatus()
+        }
+    }
 }
 
 class TunnelContainer: NSObject {
@@ -232,6 +238,14 @@ class TunnelContainer: NSObject {
         return (tunnelProvider.protocolConfiguration as! NETunnelProviderProtocol).tunnelConfiguration()
     }
 
+    func refreshConnectionStatus() {
+        let status = TunnelStatus(from: self.tunnelProvider.connection.status)
+        self.status = status
+        if (status != .inactive) {
+            startObservingTunnelStatus()
+        }
+    }
+
     fileprivate func startActivation(completionHandler: @escaping (Error?) -> Void) {
         assert(status == .inactive || status == .restarting)