diff options
| author | 2010-05-24 04:24:24 -0400 | |
|---|---|---|
| committer | 2010-05-24 04:24:24 -0400 | |
| commit | 77df9a41d90ac645d69aa86dd9bb9ee09a9fb735 (patch) | |
| tree | d1aa61354ee79cfae63dca318587dfe48581a4b1 | |
| parent | 53142922b14fe36f950eb28d3b42683ddedb7669 (diff) | |
| download | libirecovery-77df9a41d90ac645d69aa86dd9bb9ee09a9fb735.tar.gz libirecovery-77df9a41d90ac645d69aa86dd9bb9ee09a9fb735.tar.bz2 | |
Finally tracked down and killed that damn bug!!
| -rw-r--r-- | include/libirecovery.h | 2 | ||||
| -rw-r--r-- | src/irecovery.c | 13 | ||||
| -rw-r--r-- | src/libirecovery.c | 11 |
3 files changed, 10 insertions, 16 deletions
diff --git a/include/libirecovery.h b/include/libirecovery.h index 9848655..a636813 100644 --- a/include/libirecovery.h +++ b/include/libirecovery.h | |||
| @@ -61,7 +61,7 @@ struct irecv_client { | |||
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | const char* irecv_strerror(irecv_error_t error); | 63 | const char* irecv_strerror(irecv_error_t error); |
| 64 | irecv_error_t irecv_open(irecv_client_t* client, const char *uuid); | 64 | irecv_error_t irecv_open(irecv_client_t* client); |
| 65 | irecv_error_t irecv_reset(irecv_client_t client); | 65 | irecv_error_t irecv_reset(irecv_client_t client); |
| 66 | irecv_error_t irecv_close(irecv_client_t client); | 66 | irecv_error_t irecv_close(irecv_client_t client); |
| 67 | irecv_error_t irecv_receive(irecv_client_t client); | 67 | irecv_error_t irecv_receive(irecv_client_t client); |
diff --git a/src/irecovery.c b/src/irecovery.c index 00db72d..7150f90 100644 --- a/src/irecovery.c +++ b/src/irecovery.c | |||
| @@ -119,7 +119,7 @@ void append_command_to_history(char* cmd) { | |||
| 119 | 119 | ||
| 120 | void init_shell(irecv_client_t client) { | 120 | void init_shell(irecv_client_t client) { |
| 121 | irecv_error_t error = 0; | 121 | irecv_error_t error = 0; |
| 122 | load_command_history(); | 122 | //load_command_history(); |
| 123 | irecv_set_sender(client, &send_callback); | 123 | irecv_set_sender(client, &send_callback); |
| 124 | irecv_set_receiver(client, &recv_callback); | 124 | irecv_set_receiver(client, &recv_callback); |
| 125 | while(!quit) { | 125 | while(!quit) { |
| @@ -136,7 +136,7 @@ void init_shell(irecv_client_t client) { | |||
| 136 | quit = 1; | 136 | quit = 1; |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | append_command_to_history(cmd); | 139 | //append_command_to_history(cmd); |
| 140 | free(cmd); | 140 | free(cmd); |
| 141 | } | 141 | } |
| 142 | } | 142 | } |
| @@ -160,10 +160,9 @@ int main(int argc, char** argv) { | |||
| 160 | int opt = 0; | 160 | int opt = 0; |
| 161 | int action = 0; | 161 | int action = 0; |
| 162 | char* argument = NULL; | 162 | char* argument = NULL; |
| 163 | char *uuid = NULL; | ||
| 164 | irecv_error_t error = 0; | 163 | irecv_error_t error = 0; |
| 165 | if(argc == 1) print_usage(); | 164 | if(argc == 1) print_usage(); |
| 166 | while ((opt = getopt(argc, argv, "vhru:sc:f:")) > 0) { | 165 | while ((opt = getopt(argc, argv, "vhrsc:f:")) > 0) { |
| 167 | switch (opt) { | 166 | switch (opt) { |
| 168 | case 'v': | 167 | case 'v': |
| 169 | verbose += 1; | 168 | verbose += 1; |
| @@ -173,10 +172,6 @@ int main(int argc, char** argv) { | |||
| 173 | print_usage(); | 172 | print_usage(); |
| 174 | break; | 173 | break; |
| 175 | 174 | ||
| 176 | case 'u': | ||
| 177 | uuid = optarg; | ||
| 178 | break; | ||
| 179 | |||
| 180 | case 'r': | 175 | case 'r': |
| 181 | action = kResetDevice; | 176 | action = kResetDevice; |
| 182 | break; | 177 | break; |
| @@ -205,7 +200,7 @@ int main(int argc, char** argv) { | |||
| 205 | for(i = 0; i <= 5; i++) { | 200 | for(i = 0; i <= 5; i++) { |
| 206 | debug("Attempting to connect... \n"); | 201 | debug("Attempting to connect... \n"); |
| 207 | 202 | ||
| 208 | if(irecv_open(&client, uuid) != IRECV_E_SUCCESS) sleep(1); | 203 | if(irecv_open(&client) != IRECV_E_SUCCESS) sleep(1); |
| 209 | else break; | 204 | else break; |
| 210 | 205 | ||
| 211 | if(i == 5) { | 206 | if(i == 5) { |
diff --git a/src/libirecovery.c b/src/libirecovery.c index 131032c..f4d1cca 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | int irecv_default_sender(irecv_client_t client, unsigned char* data, int size); | 30 | int irecv_default_sender(irecv_client_t client, unsigned char* data, int size); |
| 31 | int irecv_default_receiver(irecv_client_t client, unsigned char* data, int size); | 31 | int irecv_default_receiver(irecv_client_t client, unsigned char* data, int size); |
| 32 | 32 | ||
| 33 | irecv_error_t irecv_open(irecv_client_t* pclient, const char* uuid) { | 33 | irecv_error_t irecv_open(irecv_client_t* pclient) { |
| 34 | int i = 0; | 34 | int i = 0; |
| 35 | char serial[256]; | 35 | char serial[256]; |
| 36 | struct libusb_device* usb_device = NULL; | 36 | struct libusb_device* usb_device = NULL; |
| @@ -63,16 +63,15 @@ irecv_error_t irecv_open(irecv_client_t* pclient, const char* uuid) { | |||
| 63 | } | 63 | } |
| 64 | libusb_set_debug(usb_context, 3); | 64 | libusb_set_debug(usb_context, 3); |
| 65 | 65 | ||
| 66 | /* identified a valid recovery device */ | 66 | libusb_free_device_list(usb_device_list, 0); |
| 67 | libusb_free_device_list(usb_device_list, 1); | ||
| 68 | 67 | ||
| 69 | irecv_client_t client = (irecv_client_t) malloc(sizeof(irecv_client_t)); | 68 | irecv_client_t client = (irecv_client_t) malloc(sizeof(struct irecv_client)); |
| 70 | if (client == NULL) { | 69 | if (client == NULL) { |
| 71 | libusb_close(usb_handle); | 70 | libusb_close(usb_handle); |
| 72 | libusb_exit(usb_context); | 71 | libusb_exit(usb_context); |
| 73 | return IRECV_E_OUT_OF_MEMORY; | 72 | return IRECV_E_OUT_OF_MEMORY; |
| 74 | } | 73 | } |
| 75 | memset(client, '\0', sizeof(irecv_client_t)); | 74 | memset(client, '\0', sizeof(struct irecv_client)); |
| 76 | client->interface = -1; | 75 | client->interface = -1; |
| 77 | client->handle = usb_handle; | 76 | client->handle = usb_handle; |
| 78 | client->context = usb_context; | 77 | client->context = usb_context; |
| @@ -154,7 +153,7 @@ irecv_error_t irecv_close(irecv_client_t client) { | |||
| 154 | } | 153 | } |
| 155 | 154 | ||
| 156 | if (client->context != NULL) { | 155 | if (client->context != NULL) { |
| 157 | libusb_exit(client->context); | 156 | libusb_exit(NULL); |
| 158 | client->context = NULL; | 157 | client->context = NULL; |
| 159 | } | 158 | } |
| 160 | 159 | ||
