LONG RFRemoveReader(const char *readerName, int port) { char lpcStripReader[MAX_READERNAME]; int i; if (readerName == NULL) return SCARD_E_INVALID_VALUE; for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++) { if (sReadersContexts[i]->vHandle != 0) { strncpy(lpcStripReader, sReadersContexts[i]->readerState->readerName, sizeof(lpcStripReader)); lpcStripReader[strlen(lpcStripReader) - 6] = 0; /* Compare only the significant part of the reader name */ if ((strncmp(readerName, lpcStripReader, MAX_READERNAME - sizeof(" 00 00")) == 0) && (port == sReadersContexts[i]->port)) { /* remove the reader */ UNREF_READER(sReadersContexts[i]) } } }
LONG RFRemoveReader(const char *readerName, int port) { char lpcStripReader[MAX_READERNAME]; int i; #ifdef FILTER_NAMES const char *extend; #endif int extend_size = 0; if (readerName == NULL) return SCARD_E_INVALID_VALUE; #ifdef FILTER_NAMES extend = getenv("PCSCLITE_FILTER_EXTEND_READER_NAMES"); if (extend) extend_size = strlen(extend); #endif for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++) { if (sReadersContexts[i]->vHandle != 0) { strncpy(lpcStripReader, sReadersContexts[i]->readerState->readerName, sizeof(lpcStripReader)); lpcStripReader[strlen(lpcStripReader) - 6 - extend_size] = 0; /* Compare only the significant part of the reader name */ if ((strncmp(readerName, lpcStripReader, MAX_READERNAME - sizeof(" 00 00")) == 0) && (port == sReadersContexts[i]->port)) { /* remove the reader */ UNREF_READER(sReadersContexts[i]) } } }