summaryrefslogtreecommitdiffstats
path: root/tools/idevicebackup2.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/idevicebackup2.c')
-rw-r--r--tools/idevicebackup2.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c
index 442ce14..47dd4f2 100644
--- a/tools/idevicebackup2.c
+++ b/tools/idevicebackup2.c
@@ -1577,6 +1577,8 @@ checkpoint:
if (err != MOBILEBACKUP2_E_SUCCESS) {
printf("Could not send status response, error %d\n", err);
}
+ } else if (!strcmp(dlmsg, "DLMessageDisconnect")) {
+ break;
} else if (!strcmp(dlmsg, "DLMessageProcessMessage")) {
node_tmp = plist_array_get_item(message, 1);
if (plist_get_node_type(node_tmp) != PLIST_DICT) {
@@ -1616,7 +1618,11 @@ checkpoint:
printf("%s", str);
free(str);
}
- break;
+
+ err = mobilebackup2_send_status_response(mobilebackup2, 0, NULL, plist_new_dict());
+ if (err != MOBILEBACKUP2_E_SUCCESS) {
+ printf("Could not send status response, error %d\n", err);
+ }
}
/* print status */
@@ -1713,15 +1719,15 @@ files_out:
client = NULL;
}
+ if (mobilebackup2)
+ mobilebackup2_client_free(mobilebackup2);
+
if (afc)
afc_client_free(afc);
if (np)
np_client_free(np);
- if (mobilebackup2)
- mobilebackup2_client_free(mobilebackup2);
-
idevice_free(phone);
return 0;