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