[Pcsclite-cvs-commit] r5364 - /trunk/PCSC/src/winscard.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Tue Oct 26 18:47:46 UTC 2010


Author: rousseau
Date: Tue Oct 26 18:47:38 2010
New Revision: 5364

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5364
Log:
SCardDisconnect(): check for card removal in case DISABLE_AUTO_POWER_ON

Modified:
    trunk/PCSC/src/winscard.c

Modified: trunk/PCSC/src/winscard.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard.c?rev=5364&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Tue Oct 26 18:47:38 2010
@@ -836,7 +836,18 @@
 		if (SCARD_UNPOWER_CARD == dwDisposition)
 		{
 			rContext->readerState->cardAtrLength = 0;
-			rContext->readerState->readerState = SCARD_PRESENT;
+			if (rv == SCARD_S_SUCCESS)
+				rContext->readerState->readerState = SCARD_PRESENT;
+			else
+			{
+				Log3(PCSC_LOG_ERROR, "Error powering down card: %d 0x%04X",
+					rv, rv);
+				if (rv == SCARD_W_REMOVED_CARD)
+					rContext->readerState->readerState = SCARD_ABSENT;
+				else
+					rContext->readerState->readerState =
+						SCARD_PRESENT | SCARD_SWALLOWED;
+			}
 			Log1(PCSC_LOG_INFO, "Skip card power on");
 		}
 		else




More information about the Pcsclite-cvs-commit mailing list