aboutsummaryrefslogtreecommitdiffstats
path: root/g10/call-agent.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2015-11-09 07:15:44 +0000
committerNIIBE Yutaka <[email protected]>2015-11-09 07:15:44 +0000
commitbce0e3f71df0709a7d323a688ddf2690c1727a6c (patch)
treeed4c60607c098596b578d323ff1566f78d3a22fd /g10/call-agent.c
parentgpg: Avoid new strings. (diff)
downloadgnupg-bce0e3f71df0709a7d323a688ddf2690c1727a6c.tar.gz
gnupg-bce0e3f71df0709a7d323a688ddf2690c1727a6c.zip
scd: Add reder information to --card-status.
* g10/call-agent.h, g10/call-agent.c (agent_release_card_info) g10/card-util.c (card_status): Add READER. * scd/apdu.c (close_ccid_reader, open_ccid_reader): Handle RDRNAME. (apdu_get_reader_name): New. * scd/ccid-driver.c (ccid_open_reader): Add argument to RDRNAME_P. * scd/command.c (cmd_learn): Return READER information.
Diffstat (limited to '')
-rw-r--r--g10/call-agent.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c
index 634578461..8eb16e411 100644
--- a/g10/call-agent.c
+++ b/g10/call-agent.c
@@ -480,6 +480,7 @@ agent_release_card_info (struct agent_card_info_s *info)
if (!info)
return;
+ xfree (info->reader); info->reader = NULL;
xfree (info->serialno); info->serialno = NULL;
xfree (info->apptype); info->apptype = NULL;
xfree (info->disp_name); info->disp_name = NULL;
@@ -509,7 +510,12 @@ learn_status_cb (void *opaque, const char *line)
while (spacep (line))
line++;
- if (keywordlen == 8 && !memcmp (keyword, "SERIALNO", keywordlen))
+ if (keywordlen == 6 && !memcmp (keyword, "READER", keywordlen))
+ {
+ xfree (parm->reader);
+ parm->reader = unescape_status_string (line);
+ }
+ else if (keywordlen == 8 && !memcmp (keyword, "SERIALNO", keywordlen))
{
xfree (parm->serialno);
parm->serialno = store_serialno (line);