aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2012-02-07 12:51:47 +0000
committerWerner Koch <[email protected]>2012-02-07 12:52:31 +0000
commit12ea5c904c0008a2adec2e8bbe45dac629548e7d (patch)
tree1a5e00f1c317d5f8902f787ce053c594c927a52f
parentagent: New function agent_print_status. (diff)
downloadgnupg-12ea5c904c0008a2adec2e8bbe45dac629548e7d.tar.gz
gnupg-12ea5c904c0008a2adec2e8bbe45dac629548e7d.zip
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.
-rw-r--r--agent/command.c16
-rw-r--r--scd/command.c38
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