aboutsummaryrefslogtreecommitdiffstats
path: root/scd/ccid-driver.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2020-09-28 06:52:42 +0000
committerNIIBE Yutaka <[email protected]>2020-09-28 06:52:42 +0000
commitb1e8072320c19246962beb6d67dc5784b5a72364 (patch)
tree394006bbe756a879f761cba0a27e9cd198b14d22 /scd/ccid-driver.c
parentscd: Internal CCID: Clear the handle after use. (diff)
downloadgnupg-b1e8072320c19246962beb6d67dc5784b5a72364.tar.gz
gnupg-b1e8072320c19246962beb6d67dc5784b5a72364.zip
scd: Internal CCID: Handle LIBUSB_ERROR_TIMEOUT at ccid_get_atr.
* scd/ccid-driver.c (ccid_slot_status): Handle LIBUSB_ERROR_TIMEOUT. -- With SPR532, at the first connection, it fails by LIBUSB_ERROR_TIMEOUT, but no retry. Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'scd/ccid-driver.c')
-rw-r--r--scd/ccid-driver.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
index 888d70367..2227eed89 100644
--- a/scd/ccid-driver.c
+++ b/scd/ccid-driver.c
@@ -2443,7 +2443,8 @@ ccid_slot_status (ccid_driver_t handle, int *statusbits, int on_wire)
status and debugging enabled. */
rc = bulk_in (handle, msg, sizeof msg, &msglen, RDR_to_PC_SlotStatus,
seqno, retries? 1000 : 200, 1);
- if (rc == CCID_DRIVER_ERR_CARD_IO_ERROR && retries < 3)
+ if ((rc == CCID_DRIVER_ERR_CARD_IO_ERROR || rc == CCID_DRIVER_ERR_USB_TIMEOUT)
+ && retries < 3)
{
if (!retries)
{