From 325470e5f298ed493dd813256571c154bfb71406 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Tue, 27 Jan 2009 21:21:08 -0800 Subject: Clear extra packets from buffers, in case something went wrong previously. Signed-off-by: Matt Colyer --- AUTHORS | 1 + src/iphone.c | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/AUTHORS b/AUTHORS index 8ea17e2..80c4ddf 100644 --- a/AUTHORS +++ b/AUTHORS @@ -7,3 +7,4 @@ Martin S. Paul Sladen Patrick Walton Zoltan Balaton +Nikias Bassen diff --git a/src/iphone.c b/src/iphone.c index 457d919..6eb56f7 100644 --- a/src/iphone.c +++ b/src/iphone.c @@ -38,6 +38,8 @@ static void iphone_config_usb_device(iphone_device_t phone) { int ret; + int bytes; + unsigned char buf[512]; log_debug_msg("setting configuration... "); ret = usb_set_configuration(phone->device, 3); @@ -70,6 +72,14 @@ static void iphone_config_usb_device(iphone_device_t phone) } else { log_debug_msg("done.\n"); } + + do { + bytes = usb_bulk_read(phone->device, BULKIN, (void *) &buf, 512, 800); + if (bytes > 0) { + log_debug_msg("iphone_config_usb_device: initial read returned %d bytes of data.\n", bytes); + log_debug_buffer(buf, bytes); + } + } while (bytes > 0); } /** @@ -219,12 +229,14 @@ iphone_error_t iphone_free_device(iphone_device_t device) int bytes; unsigned char buf[512]; - // read final package - bytes = usb_bulk_read(device->device, BULKIN, (void *) &buf, 512, 1000); - if (bytes > 0) { - log_debug_msg("iphone_free_device: final read returned\n"); - log_debug_buffer(buf, bytes); - } + // read final package(s) + do { + bytes = usb_bulk_read(device->device, BULKIN, (void *) &buf, 512, 800); + if (bytes > 0) { + log_debug_msg("iphone_free_device: final read returned\n"); + log_debug_buffer(buf, bytes); + } + } while (bytes > 0); if (device->buffer) { free(device->buffer); -- cgit v1.1-32-gdbae