mirror of
git://git.gnupg.org/gnupg.git
synced 2024-11-09 21:28:51 +01:00
scd: Retry command SERIALNO for an inactive card.
* scd/command.c (cmd_serialno): Retry once for an inactive card.
This commit is contained in:
parent
1e0a9498fe
commit
2d052240fb
@ -518,8 +518,10 @@ cmd_serialno (assuan_context_t ctx, char *line)
|
|||||||
char *serial_and_stamp;
|
char *serial_and_stamp;
|
||||||
char *serial;
|
char *serial;
|
||||||
time_t stamp;
|
time_t stamp;
|
||||||
|
int retries = 0;
|
||||||
|
|
||||||
/* Clear the remove flag so that the open_card is able to reread it. */
|
/* Clear the remove flag so that the open_card is able to reread it. */
|
||||||
|
retry:
|
||||||
if (!reader_disabled && ctrl->server_local->card_removed)
|
if (!reader_disabled && ctrl->server_local->card_removed)
|
||||||
{
|
{
|
||||||
if ( IS_LOCKED (ctrl) )
|
if ( IS_LOCKED (ctrl) )
|
||||||
@ -528,7 +530,12 @@ cmd_serialno (assuan_context_t ctx, char *line)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((rc = open_card (ctrl, *line? line:NULL)))
|
if ((rc = open_card (ctrl, *line? line:NULL)))
|
||||||
|
{
|
||||||
|
/* In case of an inactive card, retry once. */
|
||||||
|
if (gpg_err_code (rc) == GPG_ERR_CARD_RESET && retries++ < 1)
|
||||||
|
goto retry;
|
||||||
return rc;
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
rc = app_get_serial_and_stamp (ctrl->app_ctx, &serial, &stamp);
|
rc = app_get_serial_and_stamp (ctrl->app_ctx, &serial, &stamp);
|
||||||
if (rc)
|
if (rc)
|
||||||
|
Loading…
Reference in New Issue
Block a user