diff options
| -rw-r--r-- | configure.ac | 16 | ||||
| -rw-r--r-- | tools/idevicebackup.c | 12 | ||||
| -rw-r--r-- | tools/idevicebackup2.c | 15 |
3 files changed, 40 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index 66f6b4b..5a976c9 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -84,8 +84,24 @@ if test "x$ac_cv_have_endian_h" = "xno"; then | |||
| 84 | fi | 84 | fi |
| 85 | fi | 85 | fi |
| 86 | 86 | ||
| 87 | CACHED_CFLAGS="$CFLAGS" | ||
| 88 | CFLAGS+=" $libplist_CFLAGS -Werror" | ||
| 89 | |||
| 87 | AC_CHECK_DECL([plist_from_json], [AC_DEFINE([HAVE_PLIST_JSON], [1], [Define if libplist has JSON support])], [], [[#include <plist/plist.h>]]) | 90 | AC_CHECK_DECL([plist_from_json], [AC_DEFINE([HAVE_PLIST_JSON], [1], [Define if libplist has JSON support])], [], [[#include <plist/plist.h>]]) |
| 88 | 91 | ||
| 92 | # check if libplist has plist_new_unix_date() | ||
| 93 | AC_CACHE_CHECK(for plist_new_unix_date, ac_cv_plist_unix_date, | ||
| 94 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||
| 95 | #include <plist/plist.h> | ||
| 96 | ]], [[ | ||
| 97 | return plist_new_unix_date(0) ? 0 : 1 | ||
| 98 | ]])],[ac_cv_plist_unix_date=yes],[ac_cv_plist_unix_date=no])) | ||
| 99 | if test "$ac_cv_plist_unix_date" = "yes"; then | ||
| 100 | AC_DEFINE(HAVE_PLIST_UNIX_DATE, 1, [Define if libplist has new unix date API (>= 2.7.0)]) | ||
| 101 | fi | ||
| 102 | |||
| 103 | CFLAGS="$CACHED_CFLAGS" | ||
| 104 | |||
| 89 | # Check for operating system | 105 | # Check for operating system |
| 90 | AC_MSG_CHECKING([for platform-specific build settings]) | 106 | AC_MSG_CHECKING([for platform-specific build settings]) |
| 91 | case ${host_os} in | 107 | case ${host_os} in |
diff --git a/tools/idevicebackup.c b/tools/idevicebackup.c index c2ff6a3..363abad 100644 --- a/tools/idevicebackup.c +++ b/tools/idevicebackup.c | |||
| @@ -176,7 +176,13 @@ static plist_t mobilebackup_factory_info_plist_new(const char* udid) | |||
| 176 | if (value_node) | 176 | if (value_node) |
| 177 | plist_dict_set_item(ret, "IMEI", plist_copy(value_node)); | 177 | plist_dict_set_item(ret, "IMEI", plist_copy(value_node)); |
| 178 | 178 | ||
| 179 | plist_dict_set_item(ret, "Last Backup Date", plist_new_date(time(NULL) - MAC_EPOCH, 0)); | 179 | plist_dict_set_item(ret, "Last Backup Date", |
| 180 | #ifdef HAVE_PLIST_UNIX_DATE | ||
| 181 | plist_new_unix_date(time(NULL)) | ||
| 182 | #else | ||
| 183 | plist_new_date(time(NULL) - MAC_EPOCH, 0) | ||
| 184 | #endif | ||
| 185 | ); | ||
| 180 | 186 | ||
| 181 | value_node = plist_dict_get_item(root_node, "ProductType"); | 187 | value_node = plist_dict_get_item(root_node, "ProductType"); |
| 182 | plist_dict_set_item(ret, "Product Type", plist_copy(value_node)); | 188 | plist_dict_set_item(ret, "Product Type", plist_copy(value_node)); |
| @@ -213,7 +219,11 @@ static void mobilebackup_info_update_last_backup_date(plist_t info_plist) | |||
| 213 | return; | 219 | return; |
| 214 | 220 | ||
| 215 | node = plist_dict_get_item(info_plist, "Last Backup Date"); | 221 | node = plist_dict_get_item(info_plist, "Last Backup Date"); |
| 222 | #ifdef HAVE_PLIST_UNIX_DATE | ||
| 223 | plist_set_unix_date_val(node, time(NULL)); | ||
| 224 | #else | ||
| 216 | plist_set_date_val(node, time(NULL) - MAC_EPOCH, 0); | 225 | plist_set_date_val(node, time(NULL) - MAC_EPOCH, 0); |
| 226 | #endif | ||
| 217 | 227 | ||
| 218 | node = NULL; | 228 | node = NULL; |
| 219 | } | 229 | } |
diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c index 34b9739..cdce515 100644 --- a/tools/idevicebackup2.c +++ b/tools/idevicebackup2.c | |||
| @@ -460,7 +460,13 @@ static plist_t mobilebackup_factory_info_plist_new(const char* udid, idevice_t d | |||
| 460 | /* Installed Applications */ | 460 | /* Installed Applications */ |
| 461 | plist_dict_set_item(ret, "Installed Applications", installed_apps); | 461 | plist_dict_set_item(ret, "Installed Applications", installed_apps); |
| 462 | 462 | ||
| 463 | plist_dict_set_item(ret, "Last Backup Date", plist_new_date(time(NULL) - MAC_EPOCH, 0)); | 463 | plist_dict_set_item(ret, "Last Backup Date", |
| 464 | #ifdef HAVE_PLIST_UNIX_DATE | ||
| 465 | plist_new_unix_date(time(NULL)) | ||
| 466 | #else | ||
| 467 | plist_new_date(time(NULL) - MAC_EPOCH, 0) | ||
| 468 | #endif | ||
| 469 | ); | ||
| 464 | 470 | ||
| 465 | value_node = plist_dict_get_item(root_node, "MobileEquipmentIdentifier"); | 471 | value_node = plist_dict_get_item(root_node, "MobileEquipmentIdentifier"); |
| 466 | if (value_node) | 472 | if (value_node) |
| @@ -1223,7 +1229,12 @@ static void mb2_handle_list_directory(mobilebackup2_client_t mobilebackup2, plis | |||
| 1223 | plist_dict_set_item(fdict, "DLFileType", plist_new_string(ftype)); | 1229 | plist_dict_set_item(fdict, "DLFileType", plist_new_string(ftype)); |
| 1224 | plist_dict_set_item(fdict, "DLFileSize", plist_new_uint(st.st_size)); | 1230 | plist_dict_set_item(fdict, "DLFileSize", plist_new_uint(st.st_size)); |
| 1225 | plist_dict_set_item(fdict, "DLFileModificationDate", | 1231 | plist_dict_set_item(fdict, "DLFileModificationDate", |
| 1226 | plist_new_date(st.st_mtime - MAC_EPOCH, 0)); | 1232 | #ifdef HAVE_PLIST_UNIX_DATE |
| 1233 | plist_new_unix_date(st.st_mtime) | ||
| 1234 | #else | ||
| 1235 | plist_new_date(st.st_mtime - MAC_EPOCH, 0) | ||
| 1236 | #endif | ||
| 1237 | ); | ||
| 1227 | 1238 | ||
| 1228 | plist_dict_set_item(dirlist, ep->d_name, fdict); | 1239 | plist_dict_set_item(dirlist, ep->d_name, fdict); |
| 1229 | free(fpath); | 1240 | free(fpath); |
