diff options
author | Kari Oikarinen <kari.oikarinen@qt.io> | 2016-12-13 15:53:27 +0200 |
---|---|---|
committer | Kari Oikarinen <kari.oikarinen@qt.io> | 2016-12-22 13:01:19 +0000 |
commit | b9bef380a60b17d5fb686581bde20819e4492ead (patch) | |
tree | 471fad4f74f6ae5d3687cce0b23fd8c06cf31145 /qdb | |
parent | e7711227365a4fc301fe04bbed85eda986ee4ab5 (diff) |
Downgrade failure to fetch config descriptor to a warning
libusb may also access devices other than QDB devices and at least on my
Windows machine fetching the USB config descriptor for two of those
fails. Those devices will be ignored. This case would only be critical
if it happened to a QDB device, so warning level seems appropriate.
This still means warning for each such device on every polling interval.
Change-Id: I0ea36206f275296bde18ea66e3519333b73d6670
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Diffstat (limited to 'qdb')
-rw-r--r-- | qdb/server/usb-host/usbdeviceenumerator.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/qdb/server/usb-host/usbdeviceenumerator.cpp b/qdb/server/usb-host/usbdeviceenumerator.cpp index 04d97f9..4b32137 100644 --- a/qdb/server/usb-host/usbdeviceenumerator.cpp +++ b/qdb/server/usb-host/usbdeviceenumerator.cpp @@ -32,6 +32,14 @@ Q_DECLARE_LOGGING_CATEGORY(usbC); +UsbAddress getAddress(libusb_device *device) +{ + return UsbAddress{ + libusb_get_bus_number(device), + libusb_get_device_address(device) + }; +} + bool isQdbInterface(const libusb_interface &interface) { const libusb_interface_descriptor *descriptor = &interface.altsetting[0]; @@ -43,7 +51,10 @@ std::pair<bool, UsbInterfaceInfo> findQdbInterface(libusb_device *device) libusb_config_descriptor *config; const int ret = libusb_get_active_config_descriptor(device, &config); if (ret) { - qCCritical(usbC) << "Could not get config descriptor:" << libusb_error_name(ret); + const auto address = getAddress(device); + qCWarning(usbC) << "Could not get config descriptor for device at" + << address.busNumber << ":" << address.deviceAddress + << ":" << libusb_error_name(ret); return std::make_pair(false, UsbInterfaceInfo{}); } ScopeGuard configGuard = [&]() { @@ -67,14 +78,6 @@ std::pair<bool, UsbInterfaceInfo> findQdbInterface(libusb_device *device) return std::make_pair(true, info); } -UsbAddress getAddress(libusb_device *device) -{ - return UsbAddress{ - libusb_get_bus_number(device), - libusb_get_device_address(device) - }; -} - QString getSerialNumber(libusb_device *device, libusb_device_handle *handle) { QString serial{"???"}; @@ -117,7 +120,10 @@ std::pair<bool, UsbDevice> makeUsbDeviceIfQdbDevice(libusb_device *device) libusb_device_handle *handle; int ret = libusb_open(device, &handle); if (ret) { - qCWarning(usbC) << "Could not open USB device for checking serial number:" << libusb_error_name(ret); + const auto address = getAddress(device); + qCWarning(usbC) << "Could not open USB device at" << address.busNumber + << ":" << address.deviceAddress << "for checking serial number:" + << libusb_error_name(ret); return std::make_pair(false, UsbDevice{}); } ScopeGuard deviceGuard = [=]() { |