[Pcsclite-cvs-commit] r4295 - in /trunk/Drivers/ccid/src: ccid_usb.c ifdhandler.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Fri Jul 3 12:48:37 UTC 2009


Author: rousseau
Date: Fri Jul  3 12:48:36 2009
New Revision: 4295

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4295
Log:
If the driver fails to open a device (wrong interface number in the
libhal scheme for example) then return IFD_NO_SUCH_DEVICE instead of the
generic error IFD_COMMUNICATION_ERROR

Modified:
    trunk/Drivers/ccid/src/ccid_usb.c
    trunk/Drivers/ccid/src/ifdhandler.c

Modified: trunk/Drivers/ccid/src/ccid_usb.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid_usb.c?rev=4295&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid_usb.c (original)
+++ trunk/Drivers/ccid/src/ccid_usb.c Fri Jul  3 12:48:36 2009
@@ -562,7 +562,7 @@
 	}
 end:
 	if (usbDevice[reader_index].handle == NULL)
-		return STATUS_UNSUCCESSFUL;
+		return STATUS_NO_SUCH_DEVICE;
 
 	/* memorise the current reader_index so we can detect
 	 * a new OpenUSBByName on a multi slot reader */

Modified: trunk/Drivers/ccid/src/ifdhandler.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ifdhandler.c?rev=4295&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ifdhandler.c (original)
+++ trunk/Drivers/ccid/src/ifdhandler.c Fri Jul  3 12:48:36 2009
@@ -74,6 +74,7 @@
 {
 	RESPONSECODE return_value = IFD_SUCCESS;
 	int reader_index;
+	status_t ret;
 
 	if (! DebugInitialized)
 		init_driver();
@@ -97,10 +98,14 @@
 	(void)pthread_mutex_lock(&ifdh_context_mutex);
 #endif
 
-	if (OpenPortByName(reader_index, lpcDevice) != STATUS_SUCCESS)
+	ret = OpenPortByName(reader_index, lpcDevice);
+	if (ret != STATUS_SUCCESS)
 	{
 		DEBUG_CRITICAL("failed");
-		return_value = IFD_COMMUNICATION_ERROR;
+		if (STATUS_NO_SUCH_DEVICE == ret)
+			return_value = IFD_NO_SUCH_DEVICE;
+		else
+			return_value = IFD_COMMUNICATION_ERROR;
 
 		/* release the allocated reader_index */
 		ReleaseReaderIndex(reader_index);




More information about the Pcsclite-cvs-commit mailing list