From 0b2a4c2811b20e01af81bfd494b6b34d74264020 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 21 Jan 2019 22:40:43 +0100 Subject: macOS: Observe private key changes for new tunnels too Signed-off-by: Jason A. Donenfeld --- .../ViewController/TunnelEditViewController.swift | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'WireGuard/WireGuard/UI') diff --git a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift index ef51e19..a5547a1 100644 --- a/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift +++ b/WireGuard/WireGuard/UI/macOS/ViewController/TunnelEditViewController.swift @@ -105,16 +105,6 @@ class TunnelEditViewController: NSViewController { textView.string = tunnelConfiguration.asWgQuickConfig() publicKeyRow.value = tunnelConfiguration.interface.publicKey.base64EncodedString() textView.privateKeyString = tunnelConfiguration.interface.privateKey.base64EncodedString() - textViewObservationToken = textView.observe(\.privateKeyString) { [weak publicKeyRow] textView, _ in - if let privateKeyString = textView.privateKeyString, - let privateKey = Data(base64Encoded: privateKeyString), - privateKey.count == TunnelConfiguration.keyLength { - let publicKey = Curve25519.generatePublicKey(fromPrivateKey: privateKey) - publicKeyRow?.value = publicKey.base64EncodedString() - } else { - publicKeyRow?.value = "" - } - } if tunnel.activateOnDemandSetting.isActivateOnDemandEnabled { selectedActivateOnDemandOption = tunnel.activateOnDemandSetting.activateOnDemandOption } else { @@ -129,6 +119,16 @@ class TunnelEditViewController: NSViewController { textView.string = bootstrappingText selectedActivateOnDemandOption = .none } + textViewObservationToken = textView.observe(\.privateKeyString) { [weak publicKeyRow] textView, _ in + if let privateKeyString = textView.privateKeyString, + let privateKey = Data(base64Encoded: privateKeyString), + privateKey.count == TunnelConfiguration.keyLength { + let publicKey = Curve25519.generatePublicKey(fromPrivateKey: privateKey) + publicKeyRow?.value = publicKey.base64EncodedString() + } else { + publicKeyRow?.value = "" + } + } onDemandRow.valueOptions = activateOnDemandOptions.map { TunnelViewModel.activateOnDemandOptionText(for: $0) } onDemandRow.selectedOptionIndex = activateOnDemandOptions.firstIndex(of: selectedActivateOnDemandOption)! -- cgit v1.2.3-59-g8ed1b