Logs sideloading-related events with OSLog

This commit is contained in:
Riley Testut
2023-10-18 14:06:10 -05:00
parent 74dc2d4c71
commit 2133b6240d
19 changed files with 245 additions and 72 deletions

View File

@@ -31,6 +31,10 @@ struct Server: Equatable
extension Server
{
var localizedName: String? {
return self.service?.name ?? self.identifier
}
// Defined in extension so we can still use the automatically synthesized initializer.
init?(service: NetService, txtData: Data)
{

View File

@@ -80,7 +80,7 @@ extension ServerManager
case .wired:
guard let incomingConnectionsSemaphore = self.incomingConnectionsSemaphore else { return finish(.failure(ALTServerError(.connectionFailed))) }
print("Waiting for incoming connection...")
Logger.sideload.debug("Waiting for incoming connection...")
let notificationCenter = CFNotificationCenterGetDarwinNotifyCenter()
@@ -104,7 +104,7 @@ extension ServerManager
case .wireless:
guard let service = server.service else { return finish(.failure(ALTServerError(.connectionFailed))) }
print("Connecting to service:", service)
Logger.sideload.debug("Connecting to AltServer: \(service.name, privacy: .public)")
let connection = NWConnection(to: .service(name: service.name, type: service.type, domain: service.domain, interface: nil), using: .tcp)
self.connectToRemoteServer(server, connection: connection, completion: finish(_:))
@@ -166,17 +166,32 @@ private extension ServerManager
func connectToRemoteServer(_ server: Server, connection: NWConnection, completion: @escaping (Result<Connection, Error>) -> Void)
{
let serverName: String
if let localizedName = server.localizedName
{
serverName = String(format: NSLocalizedString("remote AltServer %@", comment: ""), localizedName)
}
else if server.connectionType == .wired
{
serverName = NSLocalizedString("wired AltServer", comment: "")
}
else
{
serverName = NSLocalizedString("AltServer", comment: "")
}
connection.stateUpdateHandler = { [unowned connection] (state) in
switch state
{
case .failed(let error):
print("Failed to connect to service \(server.service?.name ?? "").", error)
Logger.sideload.error("Failed to connect to \(serverName, privacy: .public). \(error.localizedDescription, privacy: .public)")
completion(.failure(OperationError.connectionFailed))
case .cancelled:
completion(.failure(OperationError.cancelled))
case .ready:
Logger.sideload.notice("Connected to \(serverName, privacy: .public)!")
let connection = NetworkConnection(connection)
completion(.success(connection))
@@ -201,10 +216,12 @@ private extension ServerManager
switch result
{
case .failure(let error):
print("Could not connect to AltDaemon XPC service \(machServiceName).", error)
Logger.sideload.error("Could not connect to AltDaemon XPC service \(machServiceName, privacy: .public). \(error.localizedDescription, privacy: .public)")
completion(.failure(error))
case .success: completion(.success(connection))
case .success:
Logger.sideload.notice("Connected to AltDaemon XPC service \(machServiceName, privacy: .public)!")
completion(.success(connection))
}
}
}