summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac16
-rw-r--r--tools/idevicebackup.c12
-rw-r--r--tools/idevicebackup2.c15
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
85fi 85fi
86 86
87CACHED_CFLAGS="$CFLAGS"
88CFLAGS+=" $libplist_CFLAGS -Werror"
89
87AC_CHECK_DECL([plist_from_json], [AC_DEFINE([HAVE_PLIST_JSON], [1], [Define if libplist has JSON support])], [], [[#include <plist/plist.h>]]) 90AC_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()
93AC_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]))
99if 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)])
101fi
102
103CFLAGS="$CACHED_CFLAGS"
104
89# Check for operating system 105# Check for operating system
90AC_MSG_CHECKING([for platform-specific build settings]) 106AC_MSG_CHECKING([for platform-specific build settings])
91case ${host_os} in 107case ${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);