Add various retries to the minimuxer calls

This commit is contained in:
Nythepegasus
2023-07-11 01:44:11 -04:00
parent 59e537362e
commit dbdb4b0f32
4 changed files with 57 additions and 46 deletions

View File

@@ -33,8 +33,7 @@ final class SendAppOperation: ResultOperation<()>
if let error = self.context.error
{
self.finish(.failure(error))
return
return self.finish(.failure(error))
}
guard let resignedApp = self.context.resignedApp else { return self.finish(.failure(OperationError.invalidParameters)) }
@@ -46,18 +45,24 @@ final class SendAppOperation: ResultOperation<()>
print("AFC App `fileURL`: \(fileURL.absoluteString)")
if let data = NSData(contentsOf: fileURL) {
do {
let bytes = Data(data).toRustByteSlice()
try yeet_app_afc(app.bundleIdentifier, bytes.forRust())
} catch {
return self.finish(.failure(error))
var attempts = 10
while (attempts != 0){
print("Send app attempts left: \(attempts)")
do {
let bytes = Data(data).toRustByteSlice()
try yeet_app_afc(app.bundleIdentifier, bytes.forRust())
} catch {
attempts -= 1
if (attempts == 0) {
return self.finish(.failure(error))
} else { continue }
}
self.progress.completedUnitCount += 1
return self.finish(.success(()))
}
self.progress.completedUnitCount += 1
self.finish(.success(()))
} else {
print("IPA doesn't exist????")
self.finish(.failure(ALTServerError(.underlyingError)))
return self.finish(.failure(ALTServerError(.underlyingError)))
}
}
}