From 29af48840f1f5d39fae8ad7942f3676936134996 Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Sat, 9 Jul 2011 08:25:22 -0400 Subject: Fixed gpg-agent SCD inquire command cancellation. Need to send the CANCEL command back to scdaemon otherwise the next SCD command will fail. --- agent/call-scd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'agent/call-scd.c') diff --git a/agent/call-scd.c b/agent/call-scd.c index 710589f72..1ffb1239e 100644 --- a/agent/call-scd.c +++ b/agent/call-scd.c @@ -1175,6 +1175,19 @@ agent_card_scd (ctrl_t ctrl, const char *cmdline, pass_data_thru, assuan_context, inq_needpin, &inqparm, pass_status_thru, assuan_context); + if (gpg_err_code(rc) == GPG_ERR_ASS_CANCELED) + { + rc = assuan_write_line(ctrl->scd_local->ctx, "CAN"); + if (!rc) { + char *line; + size_t len; + + rc = assuan_read_line(ctrl->scd_local->ctx, &line, &len); + if (!rc) + rc = gpg_error(GPG_ERR_ASS_CANCELED); + } + } + assuan_set_flag (ctrl->scd_local->ctx, ASSUAN_CONVEY_COMMENTS, saveflag); if (rc) { -- cgit v1.2.3