ftdipp_mpsse: don't throw exception when iProduct is empty: display warn and use empty string
This commit is contained in:
parent
db410839af
commit
84d5c59dfe
|
|
@ -74,10 +74,16 @@ FTDIpp_MPSSE::FTDIpp_MPSSE(const mpsse_bit_config &cable, const string &dev,
|
||||||
|
|
||||||
ret = (libusb_error)libusb_get_string_descriptor_ascii(_ftdi->usb_dev,
|
ret = (libusb_error)libusb_get_string_descriptor_ascii(_ftdi->usb_dev,
|
||||||
usb_desc.iProduct, _iproduct, 200);
|
usb_desc.iProduct, _iproduct, 200);
|
||||||
|
/* when FTDI device has no iProduct, libusb return an error
|
||||||
|
* but there is no distinction between
|
||||||
|
* real error and empty field
|
||||||
|
*/
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
snprintf(err, sizeof(err), "unable to get string descriptor: %d %s %s",
|
snprintf(err, sizeof(err),
|
||||||
ret, libusb_error_name(ret), libusb_strerror(ret));
|
"Can't read iProduct field from FTDI: "
|
||||||
throw std::runtime_error(err);
|
"considered as empty string");
|
||||||
|
printWarn(err);
|
||||||
|
memset(_iproduct,'\0', 200);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue