From 33af87206a88b24a8548185f2effc96d6b9951e9 Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Thu, 6 Jul 2023 18:45:43 +0100 Subject: [PATCH] Throw error on reinstate()/connect() (#328) Errors here were just being ignored, thus preventing error alert from appearing. --- .../PassepartoutVPN/Managers/VPNManager.swift | 4 ++-- .../Strategies/VPNManagerStrategy.swift | 4 ++-- .../Strategies/TunnelKitVPNManagerStrategy.swift | 12 ++++-------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/VPNManager.swift b/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/VPNManager.swift index 67c219a5..9c41414e 100644 --- a/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/VPNManager.swift +++ b/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/VPNManager.swift @@ -87,7 +87,7 @@ public final class VPNManager: ObservableObject { clearLastError() do { let parameters = try vpnConfigurationParameters(withProfile: profile) - await strategy.reinstate(parameters) + try await strategy.reinstate(parameters) } catch { pp_log.error("Unable to build configuration: \(error)") throw error @@ -99,7 +99,7 @@ public final class VPNManager: ObservableObject { clearLastError() do { let parameters = try vpnConfigurationParameters(withProfile: profile) - await strategy.connect(parameters) + try await strategy.connect(parameters) } catch { pp_log.error("Unable to build configuration: \(error)") throw error diff --git a/PassepartoutLibrary/Sources/PassepartoutVPN/Strategies/VPNManagerStrategy.swift b/PassepartoutLibrary/Sources/PassepartoutVPN/Strategies/VPNManagerStrategy.swift index 34eff8ee..6d879c18 100644 --- a/PassepartoutLibrary/Sources/PassepartoutVPN/Strategies/VPNManagerStrategy.swift +++ b/PassepartoutLibrary/Sources/PassepartoutVPN/Strategies/VPNManagerStrategy.swift @@ -31,9 +31,9 @@ import PassepartoutProviders public protocol VPNManagerStrategy { func observe(into state: MutableObservableVPNState) - func reinstate(_ parameters: VPNConfigurationParameters) async + func reinstate(_ parameters: VPNConfigurationParameters) async throws - func connect(_ parameters: VPNConfigurationParameters) async + func connect(_ parameters: VPNConfigurationParameters) async throws func reconnect() async diff --git a/PassepartoutLibrary/Sources/PassepartoutVPNImpl/Strategies/TunnelKitVPNManagerStrategy.swift b/PassepartoutLibrary/Sources/PassepartoutVPNImpl/Strategies/TunnelKitVPNManagerStrategy.swift index 7ae3f455..ccca1281 100644 --- a/PassepartoutLibrary/Sources/PassepartoutVPNImpl/Strategies/TunnelKitVPNManagerStrategy.swift +++ b/PassepartoutLibrary/Sources/PassepartoutVPNImpl/Strategies/TunnelKitVPNManagerStrategy.swift @@ -132,10 +132,8 @@ extension TunnelKitVPNManagerStrategy { }.store(in: &cancellables) } - public func reinstate(_ parameters: VPNConfigurationParameters) async { - guard let configuration = try? vpnConfiguration(withParameters: parameters) else { - return - } + public func reinstate(_ parameters: VPNConfigurationParameters) async throws { + let configuration = try vpnConfiguration(withParameters: parameters) guard let vpnType = configuration.neConfiguration as? VPNProtocolProviding else { fatalError("Configuration must implement VPNProtocolProviding") } @@ -155,10 +153,8 @@ extension TunnelKitVPNManagerStrategy { } } - public func connect(_ parameters: VPNConfigurationParameters) async { - guard let configuration = try? vpnConfiguration(withParameters: parameters) else { - return - } + public func connect(_ parameters: VPNConfigurationParameters) async throws { + let configuration = try vpnConfiguration(withParameters: parameters) guard let vpnType = configuration.neConfiguration as? VPNProtocolProviding else { fatalError("Configuration must implement VPNProtocolProviding") }