Make cryptographic card reader detection on single readers sytems more robust

pull/1/head
Timothy Pearson 9 years ago
parent 2872549499
commit 125cf0a7f2

@ -171,12 +171,19 @@ void CryptoCardDeviceWatcher::run() {
SCardDisconnect(hCard, SCARD_LEAVE_CARD); SCardDisconnect(hCard, SCARD_LEAVE_CARD);
} }
/* FIXME
* If only one reader was detected by PCSC, assume it corresponds to the current device node.
* This is fragile, but avoids corner cases with common systems failing to work due to
* mismatched udev / PCSC card reader vendor names...
*/
if (readers.count() > 1) {
if (!readers[i].contains(cardDevice->friendlyName())) { if (!readers[i].contains(cardDevice->friendlyName())) {
if (!cardDevice->friendlyName().contains(reader_vendor_name) || if (!cardDevice->friendlyName().contains(reader_vendor_name) ||
((reader_interface_type != "") && !cardDevice->friendlyName().contains(reader_vendor_name))) { ((reader_interface_type != "") && !cardDevice->friendlyName().contains(reader_vendor_name))) {
continue; continue;
} }
} }
}
if (first_loop) { if (first_loop) {
if (m_readerStates[i].dwEventState & SCARD_STATE_PRESENT) { if (m_readerStates[i].dwEventState & SCARD_STATE_PRESENT) {

Loading…
Cancel
Save