[Pcsclite-cvs-commit] r5212 - in /trunk/PCSC/src: eventhandler.c eventhandler.h pcsc-wirecheck-gen.c readerfactory.c winscard_clnt.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Thu Sep 2 09:05:45 UTC 2010
Author: rousseau
Date: Thu Sep 2 09:05:44 2010
New Revision: 5212
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5212
Log:
Get rid of the readerID field in struct pubReaderStatesList
Modified:
trunk/PCSC/src/eventhandler.c
trunk/PCSC/src/eventhandler.h
trunk/PCSC/src/pcsc-wirecheck-gen.c
trunk/PCSC/src/readerfactory.c
trunk/PCSC/src/winscard_clnt.c
Modified: trunk/PCSC/src/eventhandler.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/eventhandler.c?rev=5212&op=diff
==============================================================================
--- trunk/PCSC/src/eventhandler.c (original)
+++ trunk/PCSC/src/eventhandler.c Thu Sep 2 09:05:44 2010
@@ -39,7 +39,6 @@
#include "winscard_svc.h"
#include "simclist.h"
-READER_STATE readerStates[PCSCLITE_MAX_READERS_CONTEXTS];
static list_t ClientsWaitingForEvent; /**< list of client file descriptors */
pthread_mutex_t ClientsWaitingForEvent_lock; /**< lock for the above list */
@@ -117,20 +116,6 @@
LONG EHInitializeEventStructures(void)
{
- int i;
-
- for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++)
- {
- /* Zero out each value in the struct */
- memset(readerStates[i].readerName, 0, MAX_READERNAME);
- memset(readerStates[i].cardAtr, 0, MAX_ATR_SIZE);
- readerStates[i].readerID = 0;
- readerStates[i].readerState = 0;
- readerStates[i].readerSharing = 0;
- readerStates[i].cardAtrLength = 0;
- readerStates[i].cardProtocol = SCARD_PROTOCOL_UNDEFINED;
- }
-
(void)list_init(&ClientsWaitingForEvent);
/* request to store copies, and provide the metric function */
@@ -212,7 +197,6 @@
sizeof(rContext->readerState->readerName));
memset(rContext->readerState->cardAtr, 0,
sizeof(rContext->readerState->cardAtr));
- rContext->readerState->readerID = 0;
rContext->readerState->readerState = 0;
rContext->readerState->readerSharing = 0;
rContext->readerState->cardAtrLength = 0;
@@ -231,7 +215,6 @@
{
LONG rv;
DWORD dwStatus = 0;
- int i;
UCHAR ucAtr[MAX_ATR_SIZE];
DWORD dwAtrLen = 0;
@@ -242,30 +225,8 @@
return SCARD_F_UNKNOWN_ERROR;
}
- /*
- * Find an empty reader slot and insert the new reader
- */
- for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++)
- {
- if (readerStates[i].readerID == 0)
- break;
- }
-
- if (i == PCSCLITE_MAX_READERS_CONTEXTS)
- return SCARD_F_INTERNAL_ERROR;
-
- /*
- * Set all the attributes to this reader
- */
- rContext->readerState = &readerStates[i];
(void)strlcpy(rContext->readerState->readerName, rContext->lpcReader,
sizeof(rContext->readerState->readerName));
- memcpy(rContext->readerState->cardAtr, ucAtr, dwAtrLen);
- rContext->readerState->readerID = i + 100;
- rContext->readerState->readerState = dwStatus;
- rContext->readerState->readerSharing = rContext->contexts;
- rContext->readerState->cardAtrLength = dwAtrLen;
- rContext->readerState->cardProtocol = SCARD_PROTOCOL_UNDEFINED;
rContext->pthCardEvent = card_event;
rv = ThreadCreate(&rContext->pthThread, 0,
Modified: trunk/PCSC/src/eventhandler.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/eventhandler.h?rev=5212&op=diff
==============================================================================
--- trunk/PCSC/src/eventhandler.h (original)
+++ trunk/PCSC/src/eventhandler.h Thu Sep 2 09:05:44 2010
@@ -31,7 +31,6 @@
*/
typedef struct pubReaderStatesList
{
- int32_t readerID;
char readerName[MAX_READERNAME];
uint32_t readerState;
int32_t readerSharing;
Modified: trunk/PCSC/src/pcsc-wirecheck-gen.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/pcsc-wirecheck-gen.c?rev=5212&op=diff
==============================================================================
--- trunk/PCSC/src/pcsc-wirecheck-gen.c (original)
+++ trunk/PCSC/src/pcsc-wirecheck-gen.c Thu Sep 2 09:05:44 2010
@@ -223,7 +223,6 @@
BLANK_LINE ();
CHECK_STRUCT (pubReaderStatesList);
- CHECK_MEMBER (pubReaderStatesList, readerID);
CHECK_MEMBER (pubReaderStatesList, readerName);
CHECK_MEMBER (pubReaderStatesList, readerState);
CHECK_MEMBER (pubReaderStatesList, readerSharing);
Modified: trunk/PCSC/src/readerfactory.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/readerfactory.c?rev=5212&op=diff
==============================================================================
--- trunk/PCSC/src/readerfactory.c (original)
+++ trunk/PCSC/src/readerfactory.c Thu Sep 2 09:05:44 2010
@@ -49,6 +49,7 @@
#endif
static READER_CONTEXT * sReadersContexts[PCSCLITE_MAX_READERS_CONTEXTS];
+READER_STATE readerStates[PCSCLITE_MAX_READERS_CONTEXTS];
static int maxReaderHandles = PCSC_MAX_READER_HANDLES;
static DWORD dwNumReadersContexts = 0;
#ifdef USE_SERIAL
@@ -87,7 +88,16 @@
{
sReadersContexts[i] = malloc(sizeof(READER_CONTEXT));
(sReadersContexts[i])->vHandle = NULL;
- (sReadersContexts[i])->readerState = NULL;
+
+ /* Zero out each value in the struct */
+ memset(readerStates[i].readerName, 0, MAX_READERNAME);
+ memset(readerStates[i].cardAtr, 0, MAX_ATR_SIZE);
+ readerStates[i].readerState = 0;
+ readerStates[i].readerSharing = 0;
+ readerStates[i].cardAtrLength = 0;
+ readerStates[i].cardProtocol = SCARD_PROTOCOL_UNDEFINED;
+
+ sReadersContexts[i]->readerState = &readerStates[i];
}
/* Create public event structures */
@@ -175,7 +185,6 @@
(sReadersContexts[dwContext])->pMutex = NULL;
(sReadersContexts[dwContext])->dwIdentity =
(dwContext + 1) << IDENTITY_SHIFT;
- (sReadersContexts[dwContext])->readerState = NULL;
lrv = list_init(&((sReadersContexts[dwContext])->handlesList));
if (lrv < 0)
@@ -363,7 +372,6 @@
(sReadersContexts[dwContextB])->contexts = 0;
(sReadersContexts[dwContextB])->hLockId = 0;
(sReadersContexts[dwContextB])->LockCount = 0;
- (sReadersContexts[dwContextB])->readerState = NULL;
(sReadersContexts[dwContextB])->dwIdentity =
(dwContextB + 1) << IDENTITY_SHIFT;
@@ -496,7 +504,6 @@
sContext->LockCount = 0;
sContext->vHandle = NULL;
sContext->dwIdentity = 0;
- sContext->readerState = NULL;
(void)pthread_mutex_lock(&sContext->handlesList_lock);
while (list_size(&(sContext->handlesList)) != 0)
@@ -1249,8 +1256,7 @@
LONG RFCheckReaderStatus(READER_CONTEXT * rContext)
{
- if ((rContext->readerState == NULL)
- || (rContext->readerState->readerState & SCARD_UNKNOWN))
+ if (rContext->readerState->readerState & SCARD_UNKNOWN)
return SCARD_E_READER_UNAVAILABLE;
else
return SCARD_S_SUCCESS;
Modified: trunk/PCSC/src/winscard_clnt.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_clnt.c?rev=5212&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_clnt.c (original)
+++ trunk/PCSC/src/winscard_clnt.c Thu Sep 2 09:05:44 2010
@@ -1931,7 +1931,7 @@
/* Get the initial reader count on the system */
for (j=0; j < PCSCLITE_MAX_READERS_CONTEXTS; j++)
- if (readerStates[j].readerID != 0)
+ if (readerStates[j].readerName[0] != '\0')
currentReaderCount++;
if (INFINITE == dwTimeout)
@@ -1969,7 +1969,7 @@
int k, newReaderCount = 0;
for (k=0; k < PCSCLITE_MAX_READERS_CONTEXTS; k++)
- if (readerStates[k].readerID != 0)
+ if (readerStates[k].readerName != '\0')
newReaderCount++;
if (newReaderCount != currentReaderCount)
@@ -3063,7 +3063,7 @@
dwReadersLen = 0;
for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++)
- if (readerStates[i].readerID != 0)
+ if (readerStates[i].readerName[0] != '\0')
dwReadersLen += strlen(readerStates[i].readerName) + 1;
/* for the last NULL byte */
@@ -3107,7 +3107,7 @@
for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++)
{
- if (readerStates[i].readerID != 0)
+ if (readerStates[i].readerName != '\0')
{
/*
* Build the multi-string
More information about the Pcsclite-cvs-commit
mailing list