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

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Tue Jul 28 13:39:40 UTC 2009


Author: rousseau
Date: Tue Jul 28 13:39:37 2009
New Revision: 4346

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4346
Log:
change InterruptRead() to add a timeout parameter. We need a short
timeout in ccid_open_hack_pre()

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

Modified: trunk/Drivers/ccid/src/ccid.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid.c?rev=4346&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid.c (original)
+++ trunk/Drivers/ccid/src/ccid.c Tue Jul 28 13:39:37 2009
@@ -73,7 +73,8 @@
 	if (doInterruptRead && (0 == ccid_descriptor->bInterfaceProtocol))
 	{
 #ifndef TWIN_SERIAL
-		(void)InterruptRead(reader_index);
+		/* just wait for 10ms in case a notification is in the pipe */
+		(void)InterruptRead(reader_index, 10);
 #endif
 	}
 

Modified: trunk/Drivers/ccid/src/ccid_usb.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid_usb.c?rev=4346&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid_usb.c (original)
+++ trunk/Drivers/ccid/src/ccid_usb.c Tue Jul 28 13:39:37 2009
@@ -965,13 +965,11 @@
  *
  *					InterruptRead
  *
- *
- ****************************************************************************/
-int InterruptRead(int reader_index)
+ ****************************************************************************/
+int InterruptRead(int reader_index, int timeout /* in ms */)
 {
 	int ret;
 	char buffer[8];
-	int timeout = 2*1000; /* 2 seconds */
 
 	DEBUG_PERIODIC2("before (%d)", reader_index);
 	ret = usb_interrupt_read(usbDevice[reader_index].handle,

Modified: trunk/Drivers/ccid/src/ccid_usb.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid_usb.h?rev=4346&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid_usb.h (original)
+++ trunk/Drivers/ccid/src/ccid_usb.h Tue Jul 28 13:39:37 2009
@@ -43,5 +43,5 @@
 int ControlUSB(int reader_index, int requesttype, int request, int value,
 	unsigned char *bytes, unsigned int size);
 
-int InterruptRead(int reader_index);
+int InterruptRead(int reader_index, int timeout);
 #endif

Modified: trunk/Drivers/ccid/src/ifdhandler.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ifdhandler.c?rev=4346&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ifdhandler.c (original)
+++ trunk/Drivers/ccid/src/ifdhandler.c Tue Jul 28 13:39:37 2009
@@ -303,7 +303,7 @@
 	if (LogLevel & DEBUG_LEVEL_PERIODIC)
 		DEBUG_INFO3("%s (lun: %X)", CcidSlots[reader_index].readerName, Lun);
 
-	ret = InterruptRead(reader_index);
+	ret = InterruptRead(reader_index, 2*1000);	/* 2 seconds */
 	if (ret > 0)
 		return IFD_SUCCESS;
 	if (0 == ret)




More information about the Pcsclite-cvs-commit mailing list