From ae3719ec5878c5fa23a2cddec1aac07b74ddb429 Mon Sep 17 00:00:00 2001 From: Martin Szulecki Date: Tue, 17 Jul 2012 18:54:02 +0200 Subject: restore: Handle printing logs of a StatusMsg if available --- src/restore.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/restore.c b/src/restore.c index 25d51f6..ca0e4e1 100644 --- a/src/restore.c +++ b/src/restore.c @@ -562,8 +562,10 @@ int restore_handle_progress_msg(restored_client_t client, plist_t msg) { int restore_handle_status_msg(restored_client_t client, plist_t msg) { int result = 0; uint64_t value = 0; + char* log = NULL; info("Got status message\n"); + // read status code plist_t node = plist_dict_get_item(msg, "Status"); plist_get_uint_val(node, &value); @@ -587,12 +589,22 @@ int restore_handle_status_msg(restored_client_t client, plist_t msg) { break; } + // read error code node = plist_dict_get_item(msg, "AMRError"); if (node && plist_get_node_type(node) == PLIST_UINT) { plist_get_uint_val(node, &value); result = -value; } + // check if log is available + node = plist_dict_get_item(msg, "Log"); + if (node && plist_get_node_type(node) == PLIST_STRING) { + plist_get_string_val(node, &log); + info("Log is available:\n%s\n", log); + free(log); + log = NULL; + } + return result; } -- cgit v1.1-32-gdbae