Don't fail when a card errors on "get DO ARD", we could still find the card we're looking for

This commit is contained in:
Heiko Schaefer 2022-01-16 21:43:12 +01:00
parent e9ecfea4cf
commit 405a2a1fc1
No known key found for this signature in database
GPG key ID: 4A849A1904CCBD7D

View file

@ -292,28 +292,35 @@ impl PcscClient {
// -- /debug: status -- // -- /debug: status --
if let Some(ident) = ident { if let Some(ident) = ident {
let ard = PcscTxClient::application_related_data( if let Ok(ard) =
&mut txc, PcscTxClient::application_related_data(
)?; &mut txc,
let aid = ard.application_id()?; )
{
let aid = ard.application_id()?;
if aid.ident() == ident.to_ascii_uppercase() { if aid.ident() == ident.to_ascii_uppercase() {
// FIXME: handle multiple cards with matching ident // FIXME: handle multiple cards with matching ident
log::debug!( log::debug!(
"open_by_ident: Opened and selected {:?}", "open_by_ident: Opened and selected {:?}",
ident ident
); );
// we want to return this one card // we want to return this one card
store_card = true; store_card = true;
} else { } else {
log::debug!( log::debug!(
"open_by_ident: Found, but won't use {:?}", "open_by_ident: Found, but won't use {:?}",
aid.ident() aid.ident()
); );
// FIXME: end transaction // FIXME: end transaction
// txc.end(); // txc.end();
}
} else {
// couldn't read ARD for this card ...
// ignore and move on
continue;
} }
} else { } else {
// we want to return all cards // we want to return all cards