[Pcsclite-cvs-commit] r5458 - /trunk/Drivers/ccid/src/ccid_usb.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Fri Dec 17 08:59:22 UTC 2010
Author: rousseau
Date: Fri Dec 17 08:59:21 2010
New Revision: 5458
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5458
Log:
OpenUSBByName(): return STATUS_COMM_ERROR instead of
STATUS_NO_SUCH_DEVICE if the cause of the failure is
libusb_claim_interface(). The main cause if the use of OpenCT.
The OpenCT detection code in pcsc-lite is not triggered if the driver
returns STATUS_NO_SUCH_DEVICE. So the driver must return someting else
in that case.
Modified:
trunk/Drivers/ccid/src/ccid_usb.c
Modified: trunk/Drivers/ccid/src/ccid_usb.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid_usb.c?rev=5458&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid_usb.c (original)
+++ trunk/Drivers/ccid/src/ccid_usb.c Fri Dec 17 08:59:21 2010
@@ -174,6 +174,7 @@
ssize_t cnt;
list_t plist, *values, *ifdVendorID, *ifdProductID, *ifdFriendlyName;
int rv;
+ int claim_failed = FALSE;
DEBUG_COMM3("Reader index: %X, Device: %s", reader_index, device);
@@ -491,6 +492,7 @@
(void)libusb_close(dev_handle);
DEBUG_CRITICAL4("Can't claim interface %d/%d: %d",
bus_number, device_address, r);
+ claim_failed = TRUE;
interface_number = -1;
continue;
}
@@ -572,6 +574,8 @@
{
/* does not work for libusb <= 1.0.8 */
/* libusb_exit(ctx); */
+ if (claim_failed)
+ return STATUS_COMM_ERROR;
return STATUS_NO_SUCH_DEVICE;
}
More information about the Pcsclite-cvs-commit
mailing list