summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac4
-rw-r--r--src/ifuse.c20
2 files changed, 23 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 85d131a..ca518ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,6 +17,10 @@ PKG_CHECK_MODULES(libimobiledevice11, libimobiledevice-1.0 >= 1.1.0, libimobiled
if test x"$libimobiledevice_1_1" = xyes; then
AC_DEFINE([HAVE_LIBIMOBILEDEVICE_1_1], 1, [Define if libimobiledevice is using 1.1.0 API])
fi
+PKG_CHECK_MODULES(libimobiledevice11, libimobiledevice-1.0 >= 1.1.5, libimobiledevice_1_1_5=yes, libimobiledevice_1_1_5=no)
+if test x"$libimobiledevice_1_1_5" = xyes; then
+ AC_DEFINE([HAVE_LIBIMOBILEDEVICE_1_1_5], 1, [Define if libimobiledevice is using 1.1.5 API])
+fi
libimobiledevice_VERSION=`$PKG_CONFIG --modversion "libimobiledevice-1.0" 2>&1`
PKG_CHECK_MODULES(libfuse, fuse >= 2.7.0)
PKG_CHECK_MODULES(libplist, libplist)
diff --git a/src/ifuse.c b/src/ifuse.c
index b5735ee..9fafb47 100644
--- a/src/ifuse.c
+++ b/src/ifuse.c
@@ -71,7 +71,11 @@ static struct {
char *appid;
#endif
char *service_name;
+#ifdef HAVE_LIBIMOBILEDEVICE_1_1_5
+ lockdownd_service_descriptor_t service;
+#else
uint16_t port;
+#endif
} opts;
enum {
@@ -402,7 +406,11 @@ void *ifuse_init(struct fuse_conn_info *conn)
afc_client_new_from_house_arrest_client(house_arrest, &afc);
} else {
#endif
+#ifdef HAVE_LIBIMOBILEDEVICE_1_1_5
+ afc_client_new(phone, opts.service, &afc);
+#else
afc_client_new(phone, opts.port, &afc);
+#endif
#ifdef HAVE_LIBIMOBILEDEVICE_1_1
}
#endif
@@ -744,7 +752,13 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
- if ((lockdownd_start_service(control, opts.service_name, &opts.port) != LOCKDOWN_E_SUCCESS) || !opts.port) {
+ if (
+#ifdef HAVE_LIBIMOBILEDEVICE_1_1_5
+ (lockdownd_start_service(control, opts.service_name, &opts.service) != LOCKDOWN_E_SUCCESS) || !opts.service
+#else
+ (lockdownd_start_service(control, opts.service_name, &opts.port) != LOCKDOWN_E_SUCCESS) || !opts.port
+#endif
+ ) {
lockdownd_client_free(control);
idevice_free(phone);
fprintf(stderr, "Failed to start AFC service '%s' on the device.\n", opts.service_name);
@@ -757,7 +771,11 @@ int main(int argc, char *argv[])
#ifdef HAVE_LIBIMOBILEDEVICE_1_1
if (!strcmp(opts.service_name, HOUSE_ARREST_SERVICE_NAME)) {
+#ifdef HAVE_LIBIMOBILEDEVICE_1_1_5
+ house_arrest_client_new(phone, opts.service, &house_arrest);
+#else
house_arrest_client_new(phone, opts.port, &house_arrest);
+#endif
if (!house_arrest) {
fprintf(stderr, "Could not start document sharing service!\n");
return EXIT_FAILURE;