aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2021-09-22 02:40:49 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2021-09-22 02:40:49 +0200
commit3428bfbc9e6686e1293c96d15ce91bc47512828a (patch)
tree61619ebb5a6ef12093e3adb98f065cb3e4ffcf1f
parentUI: Consider on-demand to be enabled iff the tunnel provider is enabled (diff)
downloadwireguard-apple-3428bfbc9e6686e1293c96d15ce91bc47512828a.tar.xz
wireguard-apple-3428bfbc9e6686e1293c96d15ce91bc47512828a.zip
UI: macOS: do on-demand ritual for clicking list item too
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift6
-rw-r--r--Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift17
2 files changed, 16 insertions, 7 deletions
diff --git a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift
index 03cecf7..6ad8cf3 100644
--- a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift
+++ b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelDetailTableViewController.swift
@@ -216,9 +216,9 @@ class TunnelDetailTableViewController: NSViewController {
}
@objc func handleToggleActiveStatusAction() {
- if self.tunnel.hasOnDemandRules {
- let turnOn = !self.tunnel.isActivateOnDemandEnabled
- self.tunnelsManager.setOnDemandEnabled(turnOn, on: self.tunnel) { error in
+ if tunnel.hasOnDemandRules {
+ let turnOn = !tunnel.isActivateOnDemandEnabled
+ tunnelsManager.setOnDemandEnabled(turnOn, on: tunnel) { error in
if error == nil && !turnOn {
self.tunnelsManager.startDeactivation(of: self.tunnel)
}
diff --git a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift
index 265d3c3..e1fd1e8 100644
--- a/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift
+++ b/Sources/WireGuardApp/UI/macOS/ViewController/TunnelsListTableViewController.swift
@@ -232,10 +232,19 @@ class TunnelsListTableViewController: NSViewController {
let tunnelIndex = tableView.clickedRow
guard tunnelIndex >= 0 && tunnelIndex < tunnelsManager.numberOfTunnels() else { return }
let tunnel = tunnelsManager.tunnel(at: tunnelIndex)
- if tunnel.status == .inactive {
- tunnelsManager.startActivation(of: tunnel)
- } else if tunnel.status == .active {
- tunnelsManager.startDeactivation(of: tunnel)
+ if tunnel.hasOnDemandRules {
+ let turnOn = !tunnel.isActivateOnDemandEnabled
+ tunnelsManager.setOnDemandEnabled(turnOn, on: tunnel) { error in
+ if error == nil && !turnOn {
+ self.tunnelsManager.startDeactivation(of: tunnel)
+ }
+ }
+ } else {
+ if tunnel.status == .inactive {
+ tunnelsManager.startActivation(of: tunnel)
+ } else if tunnel.status == .active {
+ tunnelsManager.startDeactivation(of: tunnel)
+ }
}
}