diff options
| -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 ) ) } |
