diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2023-11-02 10:47:15 +0100 |
|---|---|---|
| committer | Jon Petersson <jon.petersson@kvadrat.se> | 2023-12-13 15:42:20 +0100 |
| commit | 8188c51e1b0a5705db7e94053c6d8d45faf615fe (patch) | |
| tree | 79b38d2b0ff8d8d2fd5b7ab06adde476c3c523e5 /ios/MullvadVPN/AccessMethodRepository/ProxyConfigurationTester.swift | |
| parent | c1e2a227931e8e6011353ff9fce56fe733e4ac63 (diff) | |
| download | mullvadvpn-8188c51e1b0a5705db7e94053c6d8d45faf615fe.tar.xz mullvadvpn-8188c51e1b0a5705db7e94053c6d8d45faf615fe.zip | |
Add API access methods UI/part of backend
Diffstat (limited to 'ios/MullvadVPN/AccessMethodRepository/ProxyConfigurationTester.swift')
| -rw-r--r-- | ios/MullvadVPN/AccessMethodRepository/ProxyConfigurationTester.swift | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/ios/MullvadVPN/AccessMethodRepository/ProxyConfigurationTester.swift b/ios/MullvadVPN/AccessMethodRepository/ProxyConfigurationTester.swift new file mode 100644 index 0000000000..bf9ad5f03a --- /dev/null +++ b/ios/MullvadVPN/AccessMethodRepository/ProxyConfigurationTester.swift @@ -0,0 +1,37 @@ +// +// ProxyConfigurationTester.swift +// MullvadVPN +// +// Created by pronebird on 28/11/2023. +// Copyright © 2023 Mullvad VPN AB. All rights reserved. +// + +import Combine +import Foundation + +/// A concrete implementation of an access method proxy configuration. +class ProxyConfigurationTester: ProxyConfigurationTesterProtocol { + private var cancellable: Cancellable? + + static let shared = ProxyConfigurationTester() + + init() {} + + func start(configuration: PersistentProxyConfiguration, completion: @escaping (Error?) -> Void) { + let workItem = DispatchWorkItem { + let randomResult = (0 ... 255).randomElement()?.isMultiple(of: 2) ?? true + + completion(randomResult ? nil : URLError(.timedOut)) + } + + DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2), execute: workItem) + + cancellable = AnyCancellable { + workItem.cancel() + } + } + + func cancel() { + cancellable = nil + } +} |
