[Pcsclite-cvs-commit] r1681 - trunk/PCSC/src
Ludovic Rousseau
rousseau at costa.debian.org
Wed Oct 12 12:34:12 UTC 2005
Author: rousseau
Date: 2005-10-12 12:34:11 +0000 (Wed, 12 Oct 2005)
New Revision: 1681
Modified:
trunk/PCSC/src/winscard_scf.c
Log:
SCardGetStatusChange(): Context index was being used instead of Reader
index, it worked only when there was just one context.
Thanks to Najam Siddiqui for the bug report
Modified: trunk/PCSC/src/winscard_scf.c
===================================================================
--- trunk/PCSC/src/winscard_scf.c 2005-09-28 08:06:09 UTC (rev 1680)
+++ trunk/PCSC/src/winscard_scf.c 2005-10-12 12:34:11 UTC (rev 1681)
@@ -684,7 +684,7 @@
LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders)
{
- LONG rv, retIndice;
+ LONG rv, retIndice, readerIndice;
PSCARD_READERSTATE_A currReader;
PREADER_STATE rContext;
LPTSTR lpcReaderName;
@@ -706,6 +706,7 @@
i = 0;
currReader = 0;
retIndice = 0;
+ readerIndice = 0;
dwBreakFlag = 0;
if (rgReaderStates == 0 && cReaders > 0)
@@ -781,9 +782,9 @@
lpcReaderName = (char *) currReader->szReader;
- retIndice = SCardGetReaderIndice(lpcReaderName);
+ readerIndice = SCardGetReaderIndice(lpcReaderName);
/* The requested reader name is not recognized */
- if (0 > retIndice)
+ if (0 > readerIndice)
{
if (currReader->dwCurrentState & SCARD_STATE_UNKNOWN)
{
@@ -811,7 +812,7 @@
/*****************************************************************/
SCardEventLock();
/* Now we check all the Reader States */
- dwState = psReaderMap[retIndice].dwCurrentState;
+ dwState = psReaderMap[readerIndice].dwCurrentState;
/*********** Check if the reader is in the correct state ********/
if (dwState & SCARD_STATE_UNKNOWN)
@@ -844,8 +845,8 @@
if (dwState & SCARD_STATE_PRESENT)
{
- currReader->cbAtr = psReaderMap[retIndice].dwAtrLength;
- memcpy(currReader->rgbAtr, psReaderMap[retIndice].bAtr,
+ currReader->cbAtr = psReaderMap[readerIndice].dwAtrLength;
+ memcpy(currReader->rgbAtr, psReaderMap[readerIndice].bAtr,
currReader->cbAtr);
}
else
@@ -920,7 +921,7 @@
}
}
- if (-1 == psReaderMap[retIndice].SharedRefCount)
+ if (-1 == psReaderMap[readerIndice].SharedRefCount)
{
currReader->dwEventState |= SCARD_STATE_EXCLUSIVE;
currReader->dwEventState &= ~SCARD_STATE_INUSE;
@@ -930,7 +931,7 @@
dwBreakFlag = 1;
}
}
- else if (psReaderMap[retIndice].SharedRefCount >= 1)
+ else if (psReaderMap[readerIndice].SharedRefCount >= 1)
{
/* A card must be inserted for it to be INUSE */
if (dwState & SCARD_STATE_PRESENT)
More information about the Pcsclite-cvs-commit
mailing list