diff options
Diffstat (limited to 'src/usb.c')
| -rw-r--r-- | src/usb.c | 9 |
1 files changed, 8 insertions, 1 deletions
| @@ -277,12 +277,19 @@ static void get_serial_callback(struct libusb_transfer *transfer) | |||
| 277 | else | 277 | else |
| 278 | usbdev->serial[di++] = data[si]; | 278 | usbdev->serial[di++] = data[si]; |
| 279 | } | 279 | } |
| 280 | usbdev->serial[di] = 0; | 280 | usbdev->serial[di] = '\0'; |
| 281 | 281 | ||
| 282 | usbmuxd_log(LL_INFO, "Got serial '%s' for device %d-%d", usbdev->serial, usbdev->bus, usbdev->address); | 282 | usbmuxd_log(LL_INFO, "Got serial '%s' for device %d-%d", usbdev->serial, usbdev->bus, usbdev->address); |
| 283 | 283 | ||
| 284 | libusb_free_transfer(transfer); | 284 | libusb_free_transfer(transfer); |
| 285 | 285 | ||
| 286 | /* new style UDID: add hyphen between first 8 and following 16 digits */ | ||
| 287 | if (di == 24) { | ||
| 288 | memmove(&usbdev->serial[9], &usbdev->serial[8], 16); | ||
| 289 | usbdev->serial[8] = '-'; | ||
| 290 | usbdev->serial[di+1] = '\0'; | ||
| 291 | } | ||
| 292 | |||
| 286 | /* Finish setup now */ | 293 | /* Finish setup now */ |
| 287 | if(device_add(usbdev) < 0) { | 294 | if(device_add(usbdev) < 0) { |
| 288 | usb_disconnect(usbdev); | 295 | usb_disconnect(usbdev); |
