diff options
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/ifuse.c | 20 |
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; |