[AltDaemon] Fixes XPC service lookup for Odyssey jailbreak

This commit is contained in:
Riley Testut
2020-09-30 14:42:22 -07:00
parent 615d4fb35b
commit 700046e693
6 changed files with 38 additions and 19 deletions

View File

@@ -41,6 +41,8 @@ struct Server: Equatable
var isPreferred = false
var connectionType: ConnectionType = .wireless
var machServiceName: String?
}
extension Server

View File

@@ -76,7 +76,7 @@ extension ServerManager
switch server.connectionType
{
case .local: self.connectToLocalServer(completion: finish(_:))
case .local: self.connectToLocalServer(server, completion: finish(_:))
case .wired:
guard let incomingConnectionsSemaphore = self.incomingConnectionsSemaphore else { return finish(.failure(ALTServerError(.connectionFailed))) }
@@ -190,14 +190,18 @@ private extension ServerManager
connection.start(queue: self.dispatchQueue)
}
func connectToLocalServer(completion: @escaping (Result<Connection, Error>) -> Void)
func connectToLocalServer(_ server: Server, completion: @escaping (Result<Connection, Error>) -> Void)
{
let connection = XPCConnection()
guard let machServiceName = server.machServiceName else { return completion(.failure(ConnectionError.connectionFailed)) }
let xpcConnection = NSXPCConnection.makeConnection(machServiceName: machServiceName)
let connection = XPCConnection(xpcConnection)
connection.connect { (result) in
switch result
{
case .failure(let error):
print("Could not connect to AltDaemon XPC service.", error)
print("Could not connect to AltDaemon XPC service \(machServiceName).", error)
completion(.failure(error))
case .success: completion(.success(connection))