diff options
author | NIIBE Yutaka <[email protected]> | 2017-01-18 06:19:38 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2017-01-18 06:19:38 +0000 |
commit | 8b1f24a29ebc7651437c01990215a55b1136dae0 (patch) | |
tree | 0993bc9774f78b0428143135806ec38a3004becf /scd/command.c | |
parent | build: Handle packages with dashes in --find-version. (diff) | |
download | gnupg-8b1f24a29ebc7651437c01990215a55b1136dae0.tar.gz gnupg-8b1f24a29ebc7651437c01990215a55b1136dae0.zip |
scd: Add "card_list" sub command for GETINFO.
* scd/app.c (app_send_card_list): New.
* scd/command.c (cmd_getinfo): Fix "status" sub command.
Add "card_list" sub command.
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'scd/command.c')
-rw-r--r-- | scd/command.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/scd/command.c b/scd/command.c index dc854e35d..cad8c6e39 100644 --- a/scd/command.c +++ b/scd/command.c @@ -1392,7 +1392,10 @@ static const char hlp_getinfo[] = "\n" "app_list - Return a list of supported applications. One\n" " application per line, fields delimited by colons,\n" - " first field is the name."; + " first field is the name.\n" + "\n" + "card_list - Return a list of serial numbers of active cards,\n" + " using a status response."; static gpg_error_t cmd_getinfo (assuan_context_t ctx, char *line) { @@ -1422,10 +1425,11 @@ cmd_getinfo (assuan_context_t ctx, char *line) else if (!strcmp (line, "status")) { ctrl_t ctrl = assuan_get_pointer (ctx); - app_t app = ctrl->app_ctx; - char flag = 'r'; + char flag; - if (!ctrl->server_local->card_removed && app) + if (open_card (ctrl)) + flag = 'r'; + else flag = 'u'; rc = assuan_send_data (ctx, &flag, 1); @@ -1455,6 +1459,12 @@ cmd_getinfo (assuan_context_t ctx, char *line) rc = 0; xfree (s); } + else if (!strcmp (line, "card_list")) + { + ctrl_t ctrl = assuan_get_pointer (ctx); + + app_send_card_list (ctrl); + } else rc = set_error (GPG_ERR_ASS_PARAMETER, "unknown value for WHAT"); return rc; |