GNUPG-1-9-BRANCH gnupg/sm (ChangeLog call-dirmngr.c gpgsm.h
server.c)
cvs user wk
cvs at cvs.gnupg.org
Fri Dec 17 15:31:41 CET 2004
Date: Friday, December 17, 2004 @ 15:36:16
Author: wk
Path: /cvs/gnupg/gnupg/sm
Tag: GNUPG-1-9-BRANCH
Modified: ChangeLog call-dirmngr.c gpgsm.h server.c
* call-dirmngr.c (isvalid_status_cb, lookup_status_cb)
(run_command_status_cb): Return cancel status if gpgsm_status
returned an error.
* server.c (gpgsm_status, gpgsm_status2)
(gpgsm_status_with_err_code): Return an error code.
(gpgsm_status2): Always call va_end().
----------------+
ChangeLog | 10 ++++++++++
call-dirmngr.c | 9 ++++++---
gpgsm.h | 8 ++++----
server.c | 23 +++++++++++++----------
4 files changed, 33 insertions(+), 17 deletions(-)
Index: gnupg/sm/ChangeLog
diff -u gnupg/sm/ChangeLog:1.101.2.81 gnupg/sm/ChangeLog:1.101.2.82
--- gnupg/sm/ChangeLog:1.101.2.81 Wed Dec 15 15:38:37 2004
+++ gnupg/sm/ChangeLog Fri Dec 17 15:36:16 2004
@@ -1,3 +1,13 @@
+2004-12-17 Werner Koch <wk at g10code.com>
+
+ * call-dirmngr.c (isvalid_status_cb, lookup_status_cb)
+ (run_command_status_cb): Return cancel status if gpgsm_status
+ returned an error.
+
+ * server.c (gpgsm_status, gpgsm_status2)
+ (gpgsm_status_with_err_code): Return an error code.
+ (gpgsm_status2): Always call va_end().
+
2004-12-15 Werner Koch <wk at g10code.com>
* call-dirmngr.c (lookup_status_cb): Send progress messages
Index: gnupg/sm/call-dirmngr.c
diff -u gnupg/sm/call-dirmngr.c:1.16.2.10 gnupg/sm/call-dirmngr.c:1.16.2.11
--- gnupg/sm/call-dirmngr.c:1.16.2.10 Wed Dec 15 15:38:37 2004
+++ gnupg/sm/call-dirmngr.c Fri Dec 17 15:36:16 2004
@@ -355,7 +355,8 @@
{
for (line += 8; *line == ' '; line++)
;
- gpgsm_status (parm->ctrl, STATUS_PROGRESS, line);
+ if (gpgsm_status (parm->ctrl, STATUS_PROGRESS, line))
+ return ASSUAN_Canceled;
}
}
else if (!strncmp (line, "ONLY_VALID_IF_CERT_VALID", 24)
@@ -625,7 +626,8 @@
{
for (line += 8; *line == ' '; line++)
;
- gpgsm_status (parm->ctrl, STATUS_PROGRESS, line);
+ if (gpgsm_status (parm->ctrl, STATUS_PROGRESS, line))
+ return ASSUAN_Canceled;
}
}
else if (!strncmp (line, "TRUNCATED", 9) && (line[9]==' ' || !line[9]))
@@ -760,7 +762,8 @@
{
for (line += 8; *line == ' '; line++)
;
- gpgsm_status (ctrl, STATUS_PROGRESS, line);
+ if (gpgsm_status (ctrl, STATUS_PROGRESS, line))
+ return ASSUAN_Canceled;
}
}
return 0;
Index: gnupg/sm/gpgsm.h
diff -u gnupg/sm/gpgsm.h:1.54.2.22 gnupg/sm/gpgsm.h:1.54.2.23
--- gnupg/sm/gpgsm.h:1.54.2.22 Tue Nov 23 18:09:51 2004
+++ gnupg/sm/gpgsm.h Fri Dec 17 15:36:16 2004
@@ -171,10 +171,10 @@
/*-- server.c --*/
void gpgsm_server (certlist_t default_recplist);
-void gpgsm_status (ctrl_t ctrl, int no, const char *text);
-void gpgsm_status2 (ctrl_t ctrl, int no, ...);
-void gpgsm_status_with_err_code (ctrl_t ctrl, int no, const char *text,
- gpg_err_code_t ec);
+gpg_error_t gpgsm_status (ctrl_t ctrl, int no, const char *text);
+gpg_error_t gpgsm_status2 (ctrl_t ctrl, int no, ...);
+gpg_error_t gpgsm_status_with_err_code (ctrl_t ctrl, int no, const char *text,
+ gpg_err_code_t ec);
/*-- fingerprint --*/
char *gpgsm_get_fingerprint (ksba_cert_t cert, int algo,
Index: gnupg/sm/server.c
diff -u gnupg/sm/server.c:1.45.2.10 gnupg/sm/server.c:1.45.2.11
--- gnupg/sm/server.c:1.45.2.10 Mon Aug 16 13:15:55 2004
+++ gnupg/sm/server.c Fri Dec 17 15:36:16 2004
@@ -964,18 +964,19 @@
}
-void
+gpg_error_t
gpgsm_status2 (CTRL ctrl, int no, ...)
{
+ gpg_error_t err = 0;
va_list arg_ptr;
const char *text;
va_start (arg_ptr, no);
- if (ctrl->no_server)
+ if (ctrl->no_server && ctrl->status_fd == -1)
+ ; /* No status wanted. */
+ else if (ctrl->no_server)
{
- if (ctrl->status_fd == -1)
- return; /* no status wanted */
if (!statusfp)
{
if (ctrl->status_fd == 1)
@@ -1030,19 +1031,21 @@
*p++ = *text++;
}
*p = 0;
- assuan_write_status (ctx, get_status_string (no), buf);
+ err = map_assuan_err (assuan_write_status (ctx,
+ get_status_string (no), buf));
}
va_end (arg_ptr);
+ return err;
}
-void
+gpg_error_t
gpgsm_status (CTRL ctrl, int no, const char *text)
{
- gpgsm_status2 (ctrl, no, text, NULL);
+ return gpgsm_status2 (ctrl, no, text, NULL);
}
-void
+gpg_error_t
gpgsm_status_with_err_code (CTRL ctrl, int no, const char *text,
gpg_err_code_t ec)
{
@@ -1050,9 +1053,9 @@
sprintf (buf, "%u", (unsigned int)ec);
if (text)
- gpgsm_status2 (ctrl, no, text, buf, NULL);
+ return gpgsm_status2 (ctrl, no, text, buf, NULL);
else
- gpgsm_status2 (ctrl, no, buf, NULL);
+ return gpgsm_status2 (ctrl, no, buf, NULL);
}
#if 0
More information about the Gnupg-commits
mailing list