diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2022-11-01 06:29:03 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2022-11-02 13:53:46 +0100 |
| commit | eb71095e0ba8d00d8973a4f174e69b428f8f2ae9 (patch) | |
| tree | 949296e170e640db09ebaf81e07b5fba2c55f920 | |
| parent | b591fbf86dcd3723fcec51a365721b902349dbe4 (diff) | |
| download | mullvadvpn-eb71095e0ba8d00d8973a4f174e69b428f8f2ae9.tar.xz mullvadvpn-eb71095e0ba8d00d8973a4f174e69b428f8f2ae9.zip | |
PacketTunnelTransport: accept tunnel manager instance
| -rw-r--r-- | ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift | 8 | ||||
| -rw-r--r-- | ios/MullvadVPN/TransportMonitor/TransportMonitor.swift | 18 |
2 files changed, 19 insertions, 7 deletions
diff --git a/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift b/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift index bf994e33ce..8c583afb4c 100644 --- a/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift +++ b/ios/MullvadVPN/TransportMonitor/PacketTunnelTransport.swift @@ -16,13 +16,19 @@ final class PacketTunnelTransport: RESTTransport { return "packet-tunnel" } + let tunnelManager: TunnelManager + + init(tunnelManager: TunnelManager) { + self.tunnelManager = tunnelManager + } + func sendRequest( _ request: URLRequest, completion: @escaping (Data?, URLResponse?, Error?) -> Void ) throws -> Cancellable { let proxyRequest = try ProxyURLRequest(id: UUID(), urlRequest: request) - return try TunnelManager.shared.sendRequest(proxyRequest) { result in + return try tunnelManager.sendRequest(proxyRequest) { result in switch result { case .cancelled: completion(nil, nil, URLError(.cancelled)) diff --git a/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift b/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift index 5e22ee405a..140a9b3027 100644 --- a/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift +++ b/ios/MullvadVPN/TransportMonitor/TransportMonitor.swift @@ -10,11 +10,17 @@ import Foundation import MullvadREST class TransportMonitor: TunnelObserver { - private let packetTunnelTransport = PacketTunnelTransport() - private let urlSessionTransport = URLSessionTransport(urlSession: REST.makeURLSession()) + private let tunnelManager: TunnelManager + private let packetTunnelTransport: PacketTunnelTransport + private let urlSessionTransport: URLSessionTransport - init() { - TunnelManager.shared.addObserver(self) + init(tunnelManager: TunnelManager = .shared) { + self.tunnelManager = tunnelManager + + packetTunnelTransport = PacketTunnelTransport(tunnelManager: tunnelManager) + urlSessionTransport = URLSessionTransport(urlSession: REST.makeURLSession()) + + tunnelManager.addObserver(self) setTransports() } @@ -45,8 +51,8 @@ class TransportMonitor: TunnelObserver { private func setTransports() { REST.TransportRegistry.shared.setTransport( stateUpdated( - tunnelState: TunnelManager.shared.tunnelStatus.state, - deviceState: TunnelManager.shared.deviceState + tunnelState: tunnelManager.tunnelStatus.state, + deviceState: tunnelManager.deviceState ) ) } |
