summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2021-09-17 12:48:43 +0200
committerAndrej Mihajlov <and@mullvad.net>2021-09-21 10:43:58 +0200
commitb311bd8a753d9880d77b5581ea36be0b59dd487c (patch)
tree9907b979d602a6a49234fedb06ffa1b8d4e9d0fc
parente2c737f611716a632dbd2e26440c57c9c79af2c1 (diff)
downloadmullvadvpn-b311bd8a753d9880d77b5581ea36be0b59dd487c.tar.xz
mullvadvpn-b311bd8a753d9880d77b5581ea36be0b59dd487c.zip
VPNTunnelProviderManagerProtocol: add promises
-rw-r--r--ios/MullvadVPN/SimulatorTunnelProvider.swift50
1 files changed, 50 insertions, 0 deletions
diff --git a/ios/MullvadVPN/SimulatorTunnelProvider.swift b/ios/MullvadVPN/SimulatorTunnelProvider.swift
index 98b51dda34..3ee852299f 100644
--- a/ios/MullvadVPN/SimulatorTunnelProvider.swift
+++ b/ios/MullvadVPN/SimulatorTunnelProvider.swift
@@ -46,6 +46,56 @@ extension NEVPNConnection: VPNConnectionProtocol {}
extension NETunnelProviderSession: VPNTunnelProviderSessionProtocol {}
extension NETunnelProviderManager: VPNTunnelProviderManagerProtocol {}
+extension VPNTunnelProviderManagerProtocol {
+ static func loadAllFromPreferences() -> Result<[SelfType]?, Error>.Promise {
+ return Result<[SelfType]?, Error>.Promise { resolver in
+ Self.loadAllFromPreferences { tunnels, error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(tunnels))
+ }
+ }
+ }
+ }
+
+ func loadFromPreferences() -> Result<(), Error>.Promise {
+ return Result<(), Error>.Promise { resolver in
+ loadFromPreferences { error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(()))
+ }
+ }
+ }
+ }
+
+ func saveToPreferences() -> Result<(), Error>.Promise {
+ return Result<(), Error>.Promise { resolver in
+ saveToPreferences { error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(()))
+ }
+ }
+ }
+ }
+
+ func removeFromPreferences() -> Result<(), Error>.Promise {
+ return Result<(), Error>.Promise { resolver in
+ removeFromPreferences { error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(()))
+ }
+ }
+ }
+ }
+}
+
#if targetEnvironment(simulator)
// MARK: - NEPacketTunnelProvider stubs