summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ios/MullvadLogging/Logging.swift2
-rw-r--r--ios/PacketTunnel/PacketTunnelProvider.swift6
-rw-r--r--ios/PacketTunnel/TunnelMonitor/Pinger.swift14
-rw-r--r--ios/PacketTunnel/TunnelMonitor/TunnelMonitor.swift44
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: