diff options
| -rw-r--r-- | include/libirecovery.h | 1 | ||||
| -rw-r--r-- | src/libirecovery.c | 24 |
2 files changed, 21 insertions, 4 deletions
diff --git a/include/libirecovery.h b/include/libirecovery.h index 63b659d..b33338f 100644 --- a/include/libirecovery.h +++ b/include/libirecovery.h | |||
| @@ -88,6 +88,7 @@ struct irecv_device_info { | |||
| 88 | unsigned int ibfl; | 88 | unsigned int ibfl; |
| 89 | char* srnm; | 89 | char* srnm; |
| 90 | char* imei; | 90 | char* imei; |
| 91 | char* srtg; | ||
| 91 | char* serial_string; | 92 | char* serial_string; |
| 92 | unsigned char* ap_nonce; | 93 | unsigned char* ap_nonce; |
| 93 | unsigned int ap_nonce_size; | 94 | unsigned int ap_nonce_size; |
diff --git a/src/libirecovery.c b/src/libirecovery.c index eec0f9a..377f571 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c | |||
| @@ -528,6 +528,17 @@ static void irecv_load_device_info_from_iboot_string(irecv_client_t client, cons | |||
| 528 | } | 528 | } |
| 529 | client->device_info.imei = strdup(tmp); | 529 | client->device_info.imei = strdup(tmp); |
| 530 | } | 530 | } |
| 531 | |||
| 532 | tmp[0] = '\0'; | ||
| 533 | ptr = strstr(iboot_string, "SRTG:["); | ||
| 534 | if(ptr != NULL) { | ||
| 535 | sscanf(ptr, "SRTG:[%s]", tmp); | ||
| 536 | ptr = strrchr(tmp, ']'); | ||
| 537 | if(ptr != NULL) { | ||
| 538 | *ptr = '\0'; | ||
| 539 | } | ||
| 540 | client->device_info.srtg = strdup(tmp); | ||
| 541 | } | ||
| 531 | } | 542 | } |
| 532 | 543 | ||
| 533 | static void irecv_copy_nonce_with_tag(irecv_client_t client, const char* tag, unsigned char** nonce, unsigned int* nonce_size) | 544 | static void irecv_copy_nonce_with_tag(irecv_client_t client, const char* tag, unsigned char** nonce, unsigned int* nonce_size) |
| @@ -1920,10 +1931,12 @@ static void _irecv_handle_device_remove(struct irecv_usb_device_info *devinfo) | |||
| 1920 | } ENDFOREACH | 1931 | } ENDFOREACH |
| 1921 | mutex_unlock(&listener_mutex); | 1932 | mutex_unlock(&listener_mutex); |
| 1922 | free(devinfo->device_info.srnm); | 1933 | free(devinfo->device_info.srnm); |
| 1923 | free(devinfo->device_info.imei); | ||
| 1924 | free(devinfo->device_info.serial_string); | ||
| 1925 | devinfo->device_info.srnm = NULL; | 1934 | devinfo->device_info.srnm = NULL; |
| 1935 | free(devinfo->device_info.imei); | ||
| 1926 | devinfo->device_info.imei = NULL; | 1936 | devinfo->device_info.imei = NULL; |
| 1937 | free(devinfo->device_info.srtg); | ||
| 1938 | devinfo->device_info.srtg = NULL; | ||
| 1939 | free(devinfo->device_info.serial_string); | ||
| 1927 | devinfo->device_info.serial_string = NULL; | 1940 | devinfo->device_info.serial_string = NULL; |
| 1928 | devinfo->alive = 0; | 1941 | devinfo->alive = 0; |
| 1929 | collection_remove(&devices, devinfo); | 1942 | collection_remove(&devices, devinfo); |
| @@ -2289,10 +2302,12 @@ IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_contex | |||
| 2289 | mutex_lock(&device_mutex); | 2302 | mutex_lock(&device_mutex); |
| 2290 | FOREACH(struct irecv_usb_device_info *devinfo, &devices) { | 2303 | FOREACH(struct irecv_usb_device_info *devinfo, &devices) { |
| 2291 | free(devinfo->device_info.srnm); | 2304 | free(devinfo->device_info.srnm); |
| 2292 | free(devinfo->device_info.imei); | ||
| 2293 | free(devinfo->device_info.serial_string); | ||
| 2294 | devinfo->device_info.srnm = NULL; | 2305 | devinfo->device_info.srnm = NULL; |
| 2306 | free(devinfo->device_info.imei); | ||
| 2295 | devinfo->device_info.imei = NULL; | 2307 | devinfo->device_info.imei = NULL; |
| 2308 | free(devinfo->device_info.srtg); | ||
| 2309 | devinfo->device_info.srtg = NULL; | ||
| 2310 | free(devinfo->device_info.serial_string); | ||
| 2296 | devinfo->device_info.serial_string = NULL; | 2311 | devinfo->device_info.serial_string = NULL; |
| 2297 | free(devinfo); | 2312 | free(devinfo); |
| 2298 | } ENDFOREACH | 2313 | } ENDFOREACH |
| @@ -2356,6 +2371,7 @@ IRECV_API irecv_error_t irecv_close(irecv_client_t client) { | |||
| 2356 | #endif | 2371 | #endif |
| 2357 | free(client->device_info.srnm); | 2372 | free(client->device_info.srnm); |
| 2358 | free(client->device_info.imei); | 2373 | free(client->device_info.imei); |
| 2374 | free(client->device_info.srtg); | ||
| 2359 | free(client->device_info.serial_string); | 2375 | free(client->device_info.serial_string); |
| 2360 | free(client->device_info.ap_nonce); | 2376 | free(client->device_info.ap_nonce); |
| 2361 | free(client->device_info.sep_nonce); | 2377 | free(client->device_info.sep_nonce); |
