installation_proxy: Ignore non-status messages instead of terminating loop
Some iOS versions will interleave a CFBundleIdentifier message into the Status
messages, and the code would treat the CFBundleIdentifier message as an error.
Terminating the loop, never seeing the last message - and even worse - never
calling back to ideviceinstaller that would be stuck waiting for a callback
with a message where Status == Complete.
diff --git a/src/installation_proxy.c b/src/installation_proxy.c
index 9a6f1ab..ebf2d03 100644
--- a/src/installation_proxy.c
+++ b/src/installation_proxy.c
@@ -367,17 +367,14 @@
/* check status from response */
instproxy_status_get_name(node, &status_name);
if (!status_name) {
- debug_info("failed to retrieve name from status response with error %d.", res);
- complete = 1;
- }
-
- if (status_name) {
+ debug_info("ignoring message without Status key:");
+ debug_plist(node);
+ } else {
if (!strcmp(status_name, "Complete")) {
complete = 1;
} else {
res = INSTPROXY_E_OP_IN_PROGRESS;
}
-
#ifndef STRIP_DEBUG_CODE
percent_complete = -1;
instproxy_status_get_percent_complete(node, &percent_complete);