summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikias Bassen <nikias@gmx.li>2013-12-13 04:14:53 +0100
committerNikias Bassen <nikias@gmx.li>2013-12-13 04:14:53 +0100
commit3537f78a98111b88aab5e2d94dda340cf09be5af (patch)
treec52974b3f21e0ae395256b3ebaecca66cea8177e
parent4c9a8a7268d51c657d1b9b5b8334298bd6d62c9a (diff)
downloadusbmuxd-3537f78a98111b88aab5e2d94dda340cf09be5af.tar.gz
make libplist/protov1 support mandatory
-rw-r--r--configure.ac24
-rw-r--r--src/client.c32
2 files changed, 4 insertions, 52 deletions
diff --git a/configure.ac b/configure.ac
index 3067304..9e113d7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,31 +17,10 @@ AC_PROG_LIBTOOL
# Checks for libraries.
PKG_CHECK_MODULES(libusb, libusb-1.0 >= 1.0.3)
-PKG_CHECK_MODULES(libplist, libplist >= 1.9, have_plist=yes, have_plist=no)
+PKG_CHECK_MODULES(libplist, libplist >= 1.11)
PKG_CHECK_MODULES(libimobiledevice, libimobiledevice-1.0 >= 1.1.6, have_limd=yes, have_limd=no)
AC_CHECK_LIB(pthread, [pthread_create, pthread_mutex_lock], [AC_SUBST(libpthread_LIBS,[-lpthread])], [AC_MSG_ERROR([libpthread is required to build usbmuxd])])
-AC_ARG_WITH([protov1],
- [AS_HELP_STRING([--without-protov1],
- [do not build with protocol v1 support (default is yes)])],
- [with_protov1=no],
- [with_protov1=yes])
-
-if test "x$have_plist" = "xyes"; then
- if test "x$with_protov1" != "xyes"; then
- have_plist=no
- echo "*** Note: Protocol V1 support has been disabled ***"
- else
- AC_DEFINE(HAVE_PLIST, 1, [Define if you have libplist support])
- AC_SUBST(libplist_CFLAGS)
- AC_SUBST(libplist_LIBS)
- fi
-else
- if test "x$with_protov1" == "xyes"; then
- AC_MSG_ERROR([protocol V1 support requested but libplist could not be found])
- fi
-fi
-
AC_ARG_WITH([preflight],
[AS_HELP_STRING([--without-preflight],
[do not build with preflight worker support (default is yes)])],
@@ -112,7 +91,6 @@ Configuration for $PACKAGE $VERSION:
-------------------------------------------
Install prefix: ...........: $prefix
- Protocol v1 support: ......: $have_plist
Preflight worker support ..: $have_limd
Now type 'make' to build $PACKAGE $VERSION,
diff --git a/src/client.c b/src/client.c
index ac5d08e..b81c11c 100644
--- a/src/client.c
+++ b/src/client.c
@@ -33,9 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#include <arpa/inet.h>
#include <pthread.h>
-#ifdef HAVE_PLIST
#include <plist/plist.h>
-#endif
#include "log.h"
#include "usb.h"
@@ -186,7 +184,6 @@ static int send_pkt(struct mux_client *client, uint32_t tag, enum usbmuxd_msgtyp
return hdr.length;
}
-#ifdef HAVE_PLIST
static int send_plist_pkt(struct mux_client *client, uint32_t tag, plist_t plist)
{
int res = -1;
@@ -201,12 +198,10 @@ static int send_plist_pkt(struct mux_client *client, uint32_t tag, plist_t plist
}
return res;
}
-#endif
static int send_result(struct mux_client *client, uint32_t tag, uint32_t result)
{
int res = -1;
-#ifdef HAVE_PLIST
if (client->proto_version == 1) {
/* XML plist packet */
plist_t dict = plist_new_dict();
@@ -214,9 +209,7 @@ static int send_result(struct mux_client *client, uint32_t tag, uint32_t result)
plist_dict_insert_item(dict, "Number", plist_new_uint(result));
res = send_plist_pkt(client, tag, dict);
free(dict);
- } else
-#endif
- {
+ } else {
/* binary packet */
res = send_pkt(client, tag, MESSAGE_RESULT, &result, sizeof(uint32_t));
}
@@ -246,7 +239,6 @@ int client_notify_connect(struct mux_client *client, enum usbmuxd_result result)
return 0;
}
-#ifdef HAVE_PLIST
static plist_t create_device_attached_plist(struct device_info *dev)
{
plist_t dict = plist_new_dict();
@@ -292,20 +284,16 @@ static int send_device_list(struct mux_client *client, uint32_t tag)
plist_free(dict);
return res;
}
-#endif
static int notify_device_add(struct mux_client *client, struct device_info *dev)
{
int res = -1;
-#ifdef HAVE_PLIST
if (client->proto_version == 1) {
/* XML plist packet */
plist_t dict = create_device_attached_plist(dev);
res = send_plist_pkt(client, 0, dict);
plist_free(dict);
- } else
-#endif
- {
+ } else {
/* binary packet */
struct usbmuxd_device_record dmsg;
memset(&dmsg, 0, sizeof(dmsg));
@@ -322,7 +310,6 @@ static int notify_device_add(struct mux_client *client, struct device_info *dev)
static int notify_device_remove(struct mux_client *client, uint32_t device_id)
{
int res = -1;
-#ifdef HAVE_PLIST
if (client->proto_version == 1) {
/* XML plist packet */
plist_t dict = plist_new_dict();
@@ -330,9 +317,7 @@ static int notify_device_remove(struct mux_client *client, uint32_t device_id)
plist_dict_insert_item(dict, "DeviceID", plist_new_uint(device_id));
res = send_plist_pkt(client, 0, dict);
plist_free(dict);
- } else
-#endif
- {
+ } else {
/* binary packet */
res = send_pkt(client, 0, MESSAGE_DEVICE_REMOVE, &device_id, sizeof(uint32_t));
}
@@ -383,25 +368,17 @@ static int client_command(struct mux_client *client, struct usbmuxd_header *hdr)
return -1;
}
-#ifdef HAVE_PLIST
if((hdr->version != 0) && (hdr->version != 1)) {
usbmuxd_log(LL_INFO, "Client %d version mismatch: expected 0 or 1, got %d", client->fd, hdr->version);
-#else
- if(hdr->version != USBMUXD_PROTOCOL_VERSION) {
- usbmuxd_log(LL_INFO, "Client %d version mismatch: expected %d, got %d", client->fd, USBMUXD_PROTOCOL_VERSION, hdr->version);
-#endif
send_result(client, hdr->tag, RESULT_BADVERSION);
return 0;
}
struct usbmuxd_connect_request *ch;
-#ifdef HAVE_PLIST
char *payload;
uint32_t payload_size;
-#endif
switch(hdr->message) {
-#ifdef HAVE_PLIST
case MESSAGE_PLIST:
client->proto_version = 1;
payload = (char*)(hdr) + sizeof(struct usbmuxd_header);
@@ -469,12 +446,10 @@ static int client_command(struct mux_client *client, struct usbmuxd_header *hdr)
client->state = CLIENT_CONNECTING1;
}
return 0;
-#ifdef HAVE_PLIST
} else if (!strcmp(message, "ListDevices")) {
if (send_device_list(client, hdr->tag) < 0)
return -1;
return 0;
-#endif
} else {
usbmuxd_log(LL_ERROR, "Unexpected command '%s' received!", message);
free(message);
@@ -486,7 +461,6 @@ static int client_command(struct mux_client *client, struct usbmuxd_header *hdr)
}
// should not be reached?!
return -1;
-#endif
case MESSAGE_LISTEN:
if(send_result(client, hdr->tag, 0) < 0)
return -1;