From 12ea5c904c0008a2adec2e8bbe45dac629548e7d Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 7 Feb 2012 13:51:47 +0100 Subject: [PATCH] Use new status printing functions. * agent/command.c (cmd_geteventcounter): Get rid of static buffers. * scd/command.c (cmd_serialno, cmd_learn): Simplify by using print_assuan_status. --- agent/command.c | 16 ++++------------ scd/command.c | 38 ++++++++++++++++---------------------- 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/agent/command.c b/agent/command.c index 6fd3f65ff..9de3e47b9 100644 --- a/agent/command.c +++ b/agent/command.c @@ -499,21 +499,13 @@ static gpg_error_t cmd_geteventcounter (assuan_context_t ctx, char *line) { ctrl_t ctrl = assuan_get_pointer (ctx); - char any_counter[25]; - char key_counter[25]; - char card_counter[25]; (void)line; - snprintf (any_counter, sizeof any_counter, "%u", eventcounter.any); - snprintf (key_counter, sizeof key_counter, "%u", eventcounter.key); - snprintf (card_counter, sizeof card_counter, "%u", eventcounter.card); - - return agent_write_status (ctrl, "EVENTCOUNTER", - any_counter, - key_counter, - card_counter, - NULL); + return agent_print_status (ctrl, "EVENTCOUNTER", "%u %u %u", + eventcounter.any, + eventcounter.key, + eventcounter.card); } diff --git a/scd/command.c b/scd/command.c index 4c3646c99..21c1b209d 100644 --- a/scd/command.c +++ b/scd/command.c @@ -40,7 +40,7 @@ #ifdef HAVE_LIBUSB #include "ccid-driver.h" #endif - +#include "asshelp.h" /* Maximum length allowed as a PIN; used for INQUIRE NEEDPIN */ #define MAXLEN_PIN 100 @@ -561,7 +561,6 @@ cmd_serialno (assuan_context_t ctx, char *line) { ctrl_t ctrl = assuan_get_pointer (ctx); int rc = 0; - char *serial_and_stamp; char *serial; time_t stamp; int retries = 0; @@ -587,15 +586,10 @@ cmd_serialno (assuan_context_t ctx, char *line) if (rc) return rc; - rc = estream_asprintf (&serial_and_stamp, "%s %lu", - serial, (unsigned long)stamp); + rc = print_assuan_status (ctx, "SERIALNO", "%s %lu", + serial, (unsigned long)stamp); xfree (serial); - if (rc < 0) - return out_of_core (); - rc = 0; - assuan_write_status (ctx, "SERIALNO", serial_and_stamp); - xfree (serial_and_stamp); - return 0; + return rc; } @@ -684,32 +678,32 @@ cmd_learn (assuan_context_t ctx, char *line) knows about this card */ if (!only_keypairinfo) { - char *serial_and_stamp; char *serial; time_t stamp; rc = app_get_serial_and_stamp (ctrl->app_ctx, &serial, &stamp); if (rc) return rc; - rc = estream_asprintf (&serial_and_stamp, "%s %lu", - serial, (unsigned long)stamp); - xfree (serial); + + rc = print_assuan_status (ctx, "SERIALNO", "%s %lu", + serial, (unsigned long)stamp); if (rc < 0) - return out_of_core (); - rc = 0; - assuan_write_status (ctx, "SERIALNO", serial_and_stamp); + { + xfree (serial); + return out_of_core (); + } if (!has_option (line, "--force")) { char *command; - rc = estream_asprintf (&command, "KNOWNCARDP %s", serial_and_stamp); + rc = estream_asprintf (&command, "KNOWNCARDP %s %lu", + serial, (unsigned long)stamp); if (rc < 0) { - xfree (serial_and_stamp); + xfree (serial); return out_of_core (); } - rc = 0; rc = assuan_inquire (ctx, command, NULL, NULL, 0); xfree (command); if (rc) @@ -717,12 +711,12 @@ cmd_learn (assuan_context_t ctx, char *line) if (gpg_err_code (rc) != GPG_ERR_ASS_CANCELED) log_error ("inquire KNOWNCARDP failed: %s\n", gpg_strerror (rc)); - xfree (serial_and_stamp); + xfree (serial); return rc; } /* Not canceled, so we have to proceeed. */ } - xfree (serial_and_stamp); + xfree (serial); } /* Let the application print out its collection of useful status