aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/VPN/TunnelsManager.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-11-09 19:19:32 +0530
committerRoopesh Chander <roop@roopc.net>2018-11-09 19:19:32 +0530
commit59b9a6e5d297a15459f766272608fee37921a10b (patch)
treeebb27b9df391ed5e569e767a1f3b471ebe7b84a5 /WireGuard/WireGuard/VPN/TunnelsManager.swift
parentNE: When there's an error starting the tunnel, show it to the user using displayMessage() (diff)
downloadwireguard-apple-59b9a6e5d297a15459f766272608fee37921a10b.tar.xz
wireguard-apple-59b9a6e5d297a15459f766272608fee37921a10b.zip
TunnelsManager: Ability to refresh connection statuses
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r--WireGuard/WireGuard/VPN/TunnelsManager.swift14
1 files changed, 14 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/VPN/TunnelsManager.swift b/WireGuard/WireGuard/VPN/TunnelsManager.swift
index ba4ef7f..682aa79 100644
--- a/WireGuard/WireGuard/VPN/TunnelsManager.swift
+++ b/WireGuard/WireGuard/VPN/TunnelsManager.swift
@@ -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)