[Pcsclite-cvs-commit] r1849 - trunk/PCSC/src
Ludovic Rousseau
rousseau at costa.debian.org
Tue Jan 31 13:29:29 UTC 2006
Author: rousseau
Date: 2006-01-31 13:29:28 +0000 (Tue, 31 Jan 2006)
New Revision: 1849
Modified:
trunk/PCSC/src/hotplug_libusb.c
Log:
if the USB reader defines a serial number then include it in the reader
name (between parenthesis)
Thanks to Achraf Karray for the patch
Modified: trunk/PCSC/src/hotplug_libusb.c
===================================================================
--- trunk/PCSC/src/hotplug_libusb.c 2006-01-30 15:44:47 UTC (rev 1848)
+++ trunk/PCSC/src/hotplug_libusb.c 2006-01-31 13:29:28 UTC (rev 1849)
@@ -77,6 +77,7 @@
{
char status;
char bus_device[BUS_DEVICE_STRSIZE]; /* device name */
+ char *fullName; /* full reader name (including serial number) */
struct _driverTracker *driver; /* driver for this reader */
} readerTracker[PCSCLITE_MAX_READERS_CONTEXTS];
@@ -428,7 +429,25 @@
readerTracker[i].driver = driver;
- if (RFAddReader(driver->readerName, PCSCLITE_HP_BASE_PORT + i,
+ if (dev->descriptor.iSerialNumber)
+ {
+ usb_dev_handle *device;
+ char serialNumber[MAX_READERNAME];
+ char fullname[MAX_READERNAME];
+
+ device = usb_open(dev);
+ usb_get_string_simple(device, dev->descriptor.iSerialNumber,
+ serialNumber, MAX_READERNAME);
+ usb_close(device);
+
+ snprintf(fullname, sizeof(fullname), "%s (%s)",
+ driver->readerName, serialNumber);
+ readerTracker[i].fullName = strdup(fullname);
+ }
+ else
+ readerTracker[i].fullName = strdup(driver->readerName);
+
+ if (RFAddReader(readerTracker[i].fullName, PCSCLITE_HP_BASE_PORT + i,
driver->libraryPath, deviceName) == SCARD_S_SUCCESS)
readerTracker[i].status = READER_PRESENT;
else
@@ -446,8 +465,9 @@
Log3(PCSC_LOG_INFO, "Removing USB device[%d]: %s", index,
readerTracker[index].bus_device);
- RFRemoveReader(readerTracker[index].driver->readerName,
+ RFRemoveReader(readerTracker[index].fullName,
PCSCLITE_HP_BASE_PORT + index);
+ free(readerTracker[index].fullName);
readerTracker[index].status = READER_ABSENT;
readerTracker[index].bus_device[0] = '\0';
readerTracker[index].driver = NULL;
More information about the Pcsclite-cvs-commit
mailing list