diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/idevicebackup2.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c index b850329..1b8d758 100644 --- a/tools/idevicebackup2.c +++ b/tools/idevicebackup2.c @@ -1285,6 +1285,7 @@ int main(int argc, char *argv[]) int cmd = -1; int cmd_flags = 0; int is_full_backup = 0; + int result_code = -1; char* backup_directory = NULL; char* backup_password = NULL; char* newpw = NULL; @@ -2075,6 +2076,9 @@ checkpoint: error_code = (uint32_t)ec; if (error_code == 0) { operation_ok = 1; + result_code = 0; + } else { + result_code = -error_code; } } nn = plist_dict_get_item(node_tmp, "ErrorDescription"); @@ -2132,13 +2136,13 @@ files_out: switch (cmd) { case CMD_BACKUP: PRINT_VERBOSE(1, "Received %d files from device.\n", file_count); - if (mb2_status_check_snapshot_state(backup_directory, udid, "finished")) { + if (operation_ok && mb2_status_check_snapshot_state(backup_directory, udid, "finished")) { PRINT_VERBOSE(1, "Backup Successful.\n"); } else { if (quit_flag) { PRINT_VERBOSE(1, "Backup Aborted.\n"); } else { - PRINT_VERBOSE(1, "Backup Failed.\n"); + PRINT_VERBOSE(1, "Backup Failed (Error Code %d).\n", -result_code); } } break; @@ -2177,7 +2181,7 @@ files_out: if (operation_ok) { PRINT_VERBOSE(1, "Restore Successful.\n"); } else { - PRINT_VERBOSE(1, "Restore Failed.\n"); + PRINT_VERBOSE(1, "Restore Failed (Error Code %d).\n", -result_code); } break; @@ -2231,6 +2235,6 @@ files_out: free(source_udid); } - return 0; + return result_code; } |