]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
Don't migrate in asTunnelConfiguration()
authorRoopesh Chander <roop@roopc.net>
Tue, 12 Feb 2019 12:07:14 +0000 (17:37 +0530)
committerRoopesh Chander <roop@roopc.net>
Tue, 12 Feb 2019 12:07:27 +0000 (17:37 +0530)
It causes problems when installing a tunnel through a
Configuration Profile on macOS and activating it first through
Network Preferences.

Signed-off-by: Roopesh Chander <roop@roopc.net>
WireGuard/Shared/Model/NETunnelProviderProtocol+Extension.swift

index 73457940152de9536a3e1d50ae9b403330e5a4d9..a57d5ff7930ae76e2287b1e536d5d28c8bb896ef 100644 (file)
@@ -34,17 +34,14 @@ extension NETunnelProviderProtocol {
     }
 
     func asTunnelConfiguration(called name: String? = nil) -> TunnelConfiguration? {
-        migrateConfigurationIfNeeded(called: name ?? "unknown")
-        //TODO: in the case where migrateConfigurationIfNeeded is called by the network extension,
-        // before the app has started, and when there is, in fact, configuration that needs to be
-        // put into the keychain, this will generate one new keychain item every time it is started,
-        // until finally the app is open. Would it be possible to call saveToPreferences here? Or is
-        // that generally not available to network extensions? In which case, what should our
-        // behavior be?
-
-        guard let passwordReference = passwordReference else { return nil }
-        guard let config = Keychain.openReference(called: passwordReference) else { return nil }
-        return try? TunnelConfiguration(fromWgQuickConfig: config, called: name)
+        if let passwordReference = passwordReference,
+            let config = Keychain.openReference(called: passwordReference) {
+            return try? TunnelConfiguration(fromWgQuickConfig: config, called: name)
+        }
+        if let oldConfig = providerConfiguration?["WgQuickConfig"] as? String {
+            return try? TunnelConfiguration(fromWgQuickConfig: oldConfig, called: name)
+        }
+        return nil
     }
 
     func destroyConfigurationReference() {