summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c42
1 files changed, 20 insertions, 22 deletions
diff --git a/main.c b/main.c
index c9bf884..43f0425 100644
--- a/main.c
+++ b/main.c
@@ -42,7 +42,7 @@
42#include "usbmuxd-proto.h" 42#include "usbmuxd-proto.h"
43#include "sock_stuff.h" 43#include "sock_stuff.h"
44 44
45#include "iphone.h" 45#include "usbmux.h"
46 46
47#define DEFAULT_TIMEOUT 4000 47#define DEFAULT_TIMEOUT 4000
48#define DEFAULT_CHILDREN_CAPACITY 10 48#define DEFAULT_CHILDREN_CAPACITY 10
@@ -60,11 +60,11 @@ static int exit_on_no_devices = 0;
60 60
61struct device_info { 61struct device_info {
62 uint32_t device_id; 62 uint32_t device_id;
63 iphone_device_t phone; 63 usbmux_device_t phone;
64 int use_count; 64 int use_count;
65 pthread_t bulk_reader; 65 pthread_t bulk_reader;
66 pthread_mutex_t mutex; 66 pthread_mutex_t mutex;
67 /* mutex for mutual exclusion of calling the iphone_mux_send function 67 /* mutex for mutual exclusion of calling the usbmux_send function
68 * TODO: I don't know if we need really need this? */ 68 * TODO: I don't know if we need really need this? */
69 pthread_mutex_t writer_mutex; 69 pthread_mutex_t writer_mutex;
70}; 70};
@@ -80,7 +80,7 @@ struct client_data {
80 int reader_dead; 80 int reader_dead;
81 int handler_dead; 81 int handler_dead;
82 int connected; 82 int connected;
83 iphone_umux_client_t muxclient; 83 usbmux_client_t muxclient;
84 struct device_info *dev; 84 struct device_info *dev;
85}; 85};
86 86
@@ -249,7 +249,7 @@ static void *usbmuxd_client_reader_thread(void *arg)
249 char rbuffer[512]; 249 char rbuffer[512];
250 uint32_t rbuffersize = 512; 250 uint32_t rbuffersize = 512;
251 uint32_t rlen; 251 uint32_t rlen;
252 iphone_error_t err; 252 int err;
253 char *cursor; 253 char *cursor;
254 ssize_t len; 254 ssize_t len;
255 int result; 255 int result;
@@ -276,7 +276,7 @@ static void *usbmuxd_client_reader_thread(void *arg)
276 } 276 }
277 277
278 rlen = 0; 278 rlen = 0;
279 err = iphone_mux_recv_timeout(cdata->muxclient, rbuffer, rbuffersize, &rlen, DEFAULT_TIMEOUT); 279 err = usbmux_recv_timeout(cdata->muxclient, rbuffer, rbuffersize, &rlen, DEFAULT_TIMEOUT);
280 if (err != 0) { 280 if (err != 0) {
281 if (verbose >= 2) logmsg(LOG_ERR, "%s[%d:%d]: encountered USB read error: %d", __func__, cdata->dev->device_id, cdata->dev->use_count, err); 281 if (verbose >= 2) logmsg(LOG_ERR, "%s[%d:%d]: encountered USB read error: %d", __func__, cdata->dev->device_id, cdata->dev->use_count, err);
282 break; 282 break;
@@ -327,7 +327,7 @@ static int usbmuxd_handleConnectResult(struct client_data *cdata)
327 int err_code; 327 int err_code;
328 ssize_t maxlen = 512; 328 ssize_t maxlen = 512;
329 uint32_t rlen; 329 uint32_t rlen;
330 iphone_error_t err; 330 int err;
331 331
332 if (!cdata) { 332 if (!cdata) {
333 if (verbose >= 2) logmsg(LOG_ERR, "%s: Invalid client_data provided!", __func__); 333 if (verbose >= 2) logmsg(LOG_ERR, "%s: Invalid client_data provided!", __func__);
@@ -342,8 +342,8 @@ static int usbmuxd_handleConnectResult(struct client_data *cdata)
342 } 342 }
343 } else { 343 } else {
344 result = 0; 344 result = 0;
345 err = iphone_mux_recv_timeout(cdata->muxclient, buffer, maxlen, &rlen, 100); 345 err = usbmux_recv_timeout(cdata->muxclient, buffer, maxlen, &rlen, 100);
346 if (err != 0) { 346 if (err < 0) {
347 if (verbose >= 2) logmsg(LOG_ERR, "%s: encountered USB read error: %d", __func__, err); 347 if (verbose >= 2) logmsg(LOG_ERR, "%s: encountered USB read error: %d", __func__, err);
348 usbmuxd_send_result(cdata->socket, cdata->tag, -err); 348 usbmuxd_send_result(cdata->socket, cdata->tag, -err);
349 return err; 349 return err;
@@ -390,7 +390,7 @@ static void *usbmuxd_client_handler_thread(void *arg)
390 ssize_t len; 390 ssize_t len;
391 ssize_t maxlen = sizeof(buffer); 391 ssize_t maxlen = sizeof(buffer);
392 uint32_t wlen; 392 uint32_t wlen;
393 iphone_error_t err; 393 int err;
394 394
395 if (!arg) { 395 if (!arg) {
396 if (verbose >= 2) logmsg(LOG_ERR, "%s: invalid client_data provided!", __func__); 396 if (verbose >= 2) logmsg(LOG_ERR, "%s: invalid client_data provided!", __func__);
@@ -441,10 +441,10 @@ static void *usbmuxd_client_handler_thread(void *arg)
441 pthread_mutex_lock(&cdata->dev->writer_mutex); 441 pthread_mutex_lock(&cdata->dev->writer_mutex);
442 do { 442 do {
443 wlen = 0; 443 wlen = 0;
444 err = iphone_mux_send(cdata->muxclient, cursor, len, &wlen); 444 err = usbmux_send(cdata->muxclient, cursor, len, &wlen);
445 if (err == IPHONE_E_TIMEOUT) { 445 if (err == -ETIMEDOUT) {
446 // some kind of timeout... just be patient and retry. 446 // some kind of timeout... just be patient and retry.
447 } else if (err != IPHONE_E_SUCCESS) { 447 } else if (err < 0) {
448 if (verbose >= 2) logmsg(LOG_ERR, "%s[%d:%d]: USB write error: %d", __func__, cdata->dev->device_id, cdata->dev->use_count, err); 448 if (verbose >= 2) logmsg(LOG_ERR, "%s[%d:%d]: USB write error: %d", __func__, cdata->dev->device_id, cdata->dev->use_count, err);
449 len = -1; 449 len = -1;
450 break; 450 break;
@@ -502,7 +502,7 @@ static void *usbmuxd_bulk_reader_thread(void *arg)
502 } 502 }
503 pthread_mutex_unlock(&cur_dev->mutex); 503 pthread_mutex_unlock(&cur_dev->mutex);
504 504
505 if ((err = iphone_mux_pullbulk(cur_dev->phone)) < 0) { 505 if ((err = usbmux_pullbulk(cur_dev->phone)) < 0) {
506 if (verbose >= 1) logmsg(LOG_ERR, "%s: error %d when reading from device", __func__, err); 506 if (verbose >= 1) logmsg(LOG_ERR, "%s: error %d when reading from device", __func__, err);
507 break; 507 break;
508 } 508 }
@@ -532,10 +532,8 @@ static void *usbmuxd_client_init_thread(void *arg)
532 int found = 0; 532 int found = 0;
533 int res; 533 int res;
534 int i; 534 int i;
535// int sent_result;
536// iphone_error_t err;
537 535
538 iphone_device_t phone = NULL; 536 usbmux_device_t phone = NULL;
539 struct device_info *cur_dev = NULL; 537 struct device_info *cur_dev = NULL;
540 538
541 if (!arg) { 539 if (!arg) {
@@ -667,7 +665,7 @@ connect:
667 if (verbose >= 2) logmsg(LOG_NOTICE, "%s[%x]: creating new usb connection, device_id=%d", __func__, THREAD, c_req->device_id); 665 if (verbose >= 2) logmsg(LOG_NOTICE, "%s[%x]: creating new usb connection, device_id=%d", __func__, THREAD, c_req->device_id);
668 666
669 pthread_mutex_lock(&usb_mutex); 667 pthread_mutex_lock(&usb_mutex);
670 if (iphone_get_specific_device(0, c_req->device_id, &phone) != IPHONE_E_SUCCESS) { 668 if (usbmux_get_specific_device(0, c_req->device_id, &phone) < 0) {
671 pthread_mutex_unlock(&usb_mutex); 669 pthread_mutex_unlock(&usb_mutex);
672 pthread_mutex_unlock(&usbmux_mutex); 670 pthread_mutex_unlock(&usbmux_mutex);
673 if (verbose >= 1) logmsg(LOG_ERR, "%s[%x]: device_id %d could not be opened", __func__, THREAD, c_req->device_id); 671 if (verbose >= 1) logmsg(LOG_ERR, "%s[%x]: device_id %d could not be opened", __func__, THREAD, c_req->device_id);
@@ -702,7 +700,7 @@ connect:
702 700
703 // setup connection to iPhone/iPod 701 // setup connection to iPhone/iPod
704// pthread_mutex_lock(&usbmux_mutex); 702// pthread_mutex_lock(&usbmux_mutex);
705 res = iphone_mux_new_client(cur_dev->phone, 0, ntohs(c_req->tcp_dport), &(cdata->muxclient)); 703 res = usbmux_new_client(cur_dev->phone, 0, ntohs(c_req->tcp_dport), &(cdata->muxclient));
706// pthread_mutex_unlock(&usbmux_mutex); 704// pthread_mutex_unlock(&usbmux_mutex);
707 705
708 if (res != 0) { 706 if (res != 0) {
@@ -737,7 +735,7 @@ connect:
737 735
738 // time to clean up 736 // time to clean up
739 if (cdata && cdata->muxclient) { // should be non-NULL 737 if (cdata && cdata->muxclient) { // should be non-NULL
740 iphone_mux_free_client(cdata->muxclient); 738 usbmux_free_client(cdata->muxclient);
741 } 739 }
742 740
743leave: 741leave:
@@ -768,7 +766,7 @@ leave:
768 pthread_join(cur_dev->bulk_reader, NULL); 766 pthread_join(cur_dev->bulk_reader, NULL);
769 } 767 }
770 pthread_mutex_lock(&usb_mutex); 768 pthread_mutex_lock(&usb_mutex);
771 iphone_free_device(cur_dev->phone); 769 usbmux_free_device(cur_dev->phone);
772 pthread_mutex_unlock(&usb_mutex); 770 pthread_mutex_unlock(&usb_mutex);
773 pthread_mutex_destroy(&cur_dev->writer_mutex); 771 pthread_mutex_destroy(&cur_dev->writer_mutex);
774 pthread_mutex_destroy(&cur_dev->mutex); 772 pthread_mutex_destroy(&cur_dev->mutex);
@@ -1001,7 +999,7 @@ int main(int argc, char **argv)
1001 999
1002 chmod(USBMUXD_SOCKET_FILE, 0666); 1000 chmod(USBMUXD_SOCKET_FILE, 0666);
1003 1001
1004 if (verbose >= 3) iphone_set_debug(1); 1002 if (verbose >= 3) usbmux_set_debug(1);
1005 1003
1006 if (!foreground) { 1004 if (!foreground) {
1007 if (daemonize() < 0) { 1005 if (daemonize() < 0) {