diff options
| -rw-r--r-- | ios/MullvadLogging/Logging.swift | 2 | ||||
| -rw-r--r-- | ios/PacketTunnel/PacketTunnelProvider.swift | 6 | ||||
| -rw-r--r-- | ios/PacketTunnel/TunnelMonitor/Pinger.swift | 14 | ||||
| -rw-r--r-- | ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift | 44 |
4 files changed, 28 insertions, 38 deletions
diff --git a/ios/MullvadLogging/Logging.swift b/ios/MullvadLogging/Logging.swift index be5c46b08b..c56daeed52 100644 --- a/ios/MullvadLogging/Logging.swift +++ b/ios/MullvadLogging/Logging.swift @@ -25,6 +25,7 @@ public struct LoggerBuilder { private var outputs: [LoggerOutput] = [] public var metadata: Logger.Metadata = [:] + public var logLevel: Logger.Level = .debug public init() {} @@ -75,6 +76,7 @@ public struct LoggerBuilder { } else { var multiplex = MultiplexLogHandler(logHandlers) multiplex.metadata = metadata + multiplex.logLevel = logLevel return multiplex } } diff --git a/ios/PacketTunnel/PacketTunnelProvider.swift b/ios/PacketTunnel/PacketTunnelProvider.swift index 9de2504487..c8bdfd2ea2 100644 --- a/ios/PacketTunnel/PacketTunnelProvider.swift +++ b/ios/PacketTunnel/PacketTunnelProvider.swift @@ -288,7 +288,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate { return } - self.providerLogger.debug("Received app message: \(message)") + self.providerLogger.trace("Received app message: \(message)") switch message { case let .reconnectTunnel(appSelectorResult): @@ -572,7 +572,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate { } catch { providerLogger.error( error: error, - message: "Failed to read device states" + message: "Failed to read device state." ) return } @@ -581,7 +581,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, TunnelMonitorDelegate { return } - providerLogger.debug("Start device check") + providerLogger.debug("Start device check.") let accountOperation = createGetAccountDataOperation( accountNumber: storedAccountData.number diff --git a/ios/PacketTunnel/TunnelMonitor/Pinger.swift b/ios/PacketTunnel/TunnelMonitor/Pinger.swift index 5e5032266a..60098eb99b 100644 --- a/ios/PacketTunnel/TunnelMonitor/Pinger.swift +++ b/ios/PacketTunnel/TunnelMonitor/Pinger.swift @@ -7,7 +7,6 @@ // import Foundation -import MullvadLogging import protocol Network.IPAddress import struct Network.IPv4Address import struct Network.IPv6Address @@ -40,8 +39,6 @@ final class Pinger { private var sequenceNumber: UInt16 = 0 private var socket: CFSocket? private var readBuffer = [UInt8](repeating: 0, count: bufferSize) - - private let logger = Logger(label: "Pinger") private let stateLock = NSRecursiveLock() private weak var _delegate: PingerDelegate? @@ -109,8 +106,6 @@ final class Pinger { if let interfaceName = interfaceName { try bindSocket(newSocket, to: interfaceName) - } else { - logger.debug("Interface is not specified.") } guard let runLoop = CFSocketCreateRunLoopSource(kCFAllocatorDefault, newSocket, 0) else { @@ -172,9 +167,7 @@ final class Pinger { } guard bytesSent >= 0 else { - let errorCode = errno - logger.debug("Failed to send packet (errno: \(errorCode)).") - throw Error.sendPacket(errorCode) + throw Error.sendPacket(errno) } return SendResult(sequenceNumber: sequenceNumber, bytesSent: UInt16(bytesSent)) @@ -289,8 +282,6 @@ final class Pinger { throw Error.mapInterfaceNameToIndex(errno) } - logger.debug("Bind socket to \"\(interfaceName)\" (index: \(index))...") - let result = setsockopt( CFSocketGetNative(socket), IPPROTO_IP, @@ -300,9 +291,6 @@ final class Pinger { ) if result == -1 { - logger.error( - "Failed to bind socket to \"\(interfaceName)\" (index: \(index), errno: \(errno))." - ) throw Error.bindSocket(errno) } } diff --git a/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift b/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift index b13659127e..43daed87eb 100644 --- a/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift +++ b/ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift @@ -228,7 +228,7 @@ final class TunnelMonitor: PingerDelegate { private var state = State() private var probeAddress: IPv4Address? - private var logger = Logger(label: "TunnelMonitor") + private let logger = Logger(label: "TunnelMonitor") private weak var _delegate: TunnelMonitorDelegate? weak var delegate: TunnelMonitorDelegate? { @@ -305,7 +305,7 @@ final class TunnelMonitor: PingerDelegate { logger.debug("Start with address: \(probeAddress).") } else { stopNoQueue(forRestart: true) - logger.debug("Restart with address: \(probeAddress)") + logger.debug("Restart with address: \(probeAddress).") } self.probeAddress = probeAddress @@ -348,7 +348,7 @@ final class TunnelMonitor: PingerDelegate { newStats.bytesSent < state.netStats.bytesSent guard !isStatsReset else { - logger.debug("Stats was being reset.") + logger.trace("Stats was being reset.") state.netStats = newStats return } @@ -364,7 +364,7 @@ final class TunnelMonitor: PingerDelegate { let evaluation = state.evaluateConnection(now: now, pingTimeout: timeout) if evaluation != .ok { - logger.debug("Evaluation: \(evaluation)") + logger.trace("Evaluation: \(evaluation)") } switch evaluation { @@ -394,7 +394,7 @@ final class TunnelMonitor: PingerDelegate { guard rxDelta > 0 || txDelta > 0 else { return } - logger.debug( + logger.trace( """ rx: \(newStats.bytesReceived) (+\(rxDelta)) \ tx: \(newStats.bytesSent) (+\(txDelta)) @@ -430,7 +430,7 @@ final class TunnelMonitor: PingerDelegate { let sendResult = try pinger.send(to: receiver) state.updatePingStats(sendResult: sendResult, now: now) - logger.debug("Send ping icmp_seq=\(sendResult.sequenceNumber).") + logger.trace("Send ping icmp_seq=\(sendResult.sequenceNumber).") } catch { logger.error(error: error, message: "Failed to send ping.") } @@ -485,23 +485,25 @@ final class TunnelMonitor: PingerDelegate { guard let probeAddress = probeAddress else { return } if sender.rawValue != probeAddress.rawValue { - logger.debug("Got reply from unknown sender: \(sender), expected: \(probeAddress).") + logger.trace("Got reply from unknown sender: \(sender), expected: \(probeAddress).") } let now = Date() let sequenceNumber = icmpHeader.sequenceNumber guard let pingTimestamp = state.setPingReplyReceived(sequenceNumber, now: now) else { - logger.debug("Got unknown ping sequence: \(sequenceNumber).") + logger.trace("Got unknown ping sequence: \(sequenceNumber).") return } - let time = now.timeIntervalSince(pingTimestamp) * 1000 - let message = String( - format: "Received reply icmp_seq=%d, time=%.2f ms.", - sequenceNumber, - time - ) - logger.debug(.init(stringLiteral: message)) + logger.trace({ + let time = now.timeIntervalSince(pingTimestamp) * 1000 + let message = String( + format: "Received reply icmp_seq=%d, time=%.2f ms.", + sequenceNumber, + time + ) + return Logger.Message(stringLiteral: message) + }()) if case .connecting = state.connectionState { state.connectionState = .connected @@ -518,14 +520,12 @@ final class TunnelMonitor: PingerDelegate { } try pinger.openSocket(bindTo: interfaceName) + + state.connectionState = .connecting + startConnectivityCheckTimer() } catch { logger.error(error: error, message: "Failed to open socket.") - return } - - state.connectionState = .connecting - - startConnectivityCheckTimer() } private func stopMonitoring(resetRetryAttempt: Bool) { @@ -564,7 +564,7 @@ final class TunnelMonitor: PingerDelegate { } private func onWakeNoQueue() { - logger.debug("Wake up.") + logger.trace("Wake up.") switch state.connectionState { case .connecting, .connected: @@ -576,7 +576,7 @@ final class TunnelMonitor: PingerDelegate { } private func onSleepNoQueue() { - logger.debug("Prepare to sleep.") + logger.trace("Prepare to sleep.") switch state.connectionState { case .connecting, .connected: |
