[Pcsclite-cvs-commit] r3284 - /trunk/Drivers/ccid/src/ifdhandler.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Mon Jan 19 15:28:04 UTC 2009


Author: rousseau
Date: Mon Jan 19 15:28:04 2009
New Revision: 3284

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=3284
Log:
ICCD devices do not use usb_interrupt_read() but sleep(). So there is no
problem killing the polling thread and sleep for 10 minutes instead of
just 5 seconds

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

Modified: trunk/Drivers/ccid/src/ifdhandler.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ifdhandler.c?rev=3284&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ifdhandler.c (original)
+++ trunk/Drivers/ccid/src/ifdhandler.c Mon Jan 19 15:28:04 2009
@@ -299,7 +299,7 @@
 	 * TAG_IFD_POLLING_THREAD_KILLABLE then we could use a much longer delay
 	 * and be killed before pcscd exits
 	 */
-	(void)sleep(5);	/* 5 seconds */
+	(void)sleep(600);	/* 10 minutes */
 	return IFD_SUCCESS;
 }
 #endif
@@ -433,6 +433,24 @@
 					*Length = sizeof(void *);
 					if (Value)
 						*(void **)Value = IFDHSleep;
+				}
+			}
+			break;
+
+		case TAG_IFD_POLLING_THREAD_KILLABLE:
+			{
+				_ccid_descriptor *ccid_desc;
+
+				/* default value: not supported */
+				*Length = 0;
+
+				ccid_desc = get_ccid_descriptor(reader_index);
+				if ((ICCD_A == ccid_desc->bInterfaceProtocol)
+					|| (ICCD_B == ccid_desc->bInterfaceProtocol))
+				{
+					*Length = 1;	/* 1 char */
+					if (Value)
+						*Value = 1;	/* TRUE */
 				}
 			}
 			break;




More information about the Pcsclite-cvs-commit mailing list