[git] GnuPG - branch, master, updated. gnupg-2.1.10-38-g4ffe44c

by Werner Koch cvs at cvs.gnupg.org
Tue Dec 15 13:44:56 CET 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  4ffe44c5874ed655d82adfa7a85439fab91cde03 (commit)
       via  345ec7323d643528d2f904765708b5ecfe51f57b (commit)
       via  2ea1aebc924c3f0b2269f83cb1b80c75d9fa069c (commit)
      from  f369efd6712148dc7ed40dba6d1ff5b0e169431a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4ffe44c5874ed655d82adfa7a85439fab91cde03
Author: Werner Koch <wk at gnupg.org>
Date:   Mon Dec 14 19:55:34 2015 +0100

    common: Use default_errsource for call-gpg and exectool.
    
    * common/call-gpg.c (my_error_from_syserror, my_error_from_errno): New.
    Use these wrappers.
    * common/exectool.c (my_error_from_syserror): New.  Use these
    wrappers.
    --
    
    Function in common should use the error source of the component which
    links them.  The global variable DEFAULT_ERRSOURCE is set early by
    each component to make this possible.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/common/call-gpg.c b/common/call-gpg.c
index cd865ef..f5a62ec 100644
--- a/common/call-gpg.c
+++ b/common/call-gpg.c
@@ -36,6 +36,19 @@
 #include "strlist.h"
 #include "util.h"
 
+
+static GPGRT_INLINE gpg_error_t
+my_error_from_syserror (void)
+{
+  return gpg_err_make (default_errsource, gpg_err_code_from_syserror ());
+}
+
+static GPGRT_INLINE gpg_error_t
+my_error_from_errno (int e)
+{
+  return gpg_err_make (default_errsource, gpg_err_code_from_errno (e));
+}
+
 

 /* Fire up a new GPG.  Handle the server's initial greeting.  Returns
    0 on success and stores the assuan context at R_CTX.  */
@@ -74,7 +87,7 @@ start_gpg (ctrl_t ctrl, const char *gpg_program, strlist_t gpg_arguments,
 
   if (fflush (NULL))
     {
-      err = gpg_error_from_syserror ();
+      err = my_error_from_syserror ();
       log_error ("error flushing pending output: %s\n", gpg_strerror (err));
       return err;
     }
@@ -82,7 +95,7 @@ start_gpg (ctrl_t ctrl, const char *gpg_program, strlist_t gpg_arguments,
   argv = xtrycalloc (strlist_length (gpg_arguments) + 3, sizeof *argv);
   if (argv == NULL)
     {
-      err = gpg_error_from_syserror ();
+      err = my_error_from_syserror ();
       return err;
     }
   i = 0;
@@ -196,7 +209,7 @@ writer_thread_main (void *arg)
         {
           if (errno == EINTR)
             continue;
-          err = gpg_error_from_syserror ();
+          err = my_error_from_syserror ();
           break; /* Write error.  */
         }
       length -= nwritten;
@@ -250,7 +263,7 @@ start_writer (int fd, const void *data, size_t datalen, estream_t stream,
 
   parm = xtrymalloc (sizeof *parm);
   if (!parm)
-    return gpg_error_from_syserror ();
+    return my_error_from_syserror ();
   parm->fd = fd;
   parm->data = data;
   parm->datalen = datalen;
@@ -263,7 +276,7 @@ start_writer (int fd, const void *data, size_t datalen, estream_t stream,
   ret = npth_create (&thread, &tattr, writer_thread_main, parm);
   if (ret)
     {
-      err = gpg_error_from_errno (ret);
+      err = my_error_from_errno (ret);
       log_error ("error spawning writer thread: %s\n", gpg_strerror (err));
     }
   else
@@ -304,7 +317,7 @@ reader_thread_main (void *arg)
         {
           if (errno == EINTR)
             continue;
-          err = gpg_error_from_syserror ();
+          err = my_error_from_syserror ();
           break;  /* Read error.  */
         }
 
@@ -357,7 +370,7 @@ start_reader (int fd, membuf_t *mb, estream_t stream,
 
   parm = xtrymalloc (sizeof *parm);
   if (!parm)
-    return gpg_error_from_syserror ();
+    return my_error_from_syserror ();
   parm->fd = fd;
   parm->mb = mb;
   parm->stream = stream;
@@ -369,7 +382,7 @@ start_reader (int fd, membuf_t *mb, estream_t stream,
   ret = npth_create (&thread, &tattr, reader_thread_main, parm);
   if (ret)
     {
-      err = gpg_error_from_errno (ret);
+      err = my_error_from_errno (ret);
       log_error ("error spawning reader thread: %s\n", gpg_strerror (err));
     }
   else
@@ -474,7 +487,7 @@ _gpg_encrypt (ctrl_t ctrl,
   ret = npth_join (reader_thread, NULL);
   if (ret)
     {
-      err = gpg_error_from_errno (ret);
+      err = my_error_from_errno (ret);
       log_error ("waiting for reader thread failed: %s\n", gpg_strerror (err));
       goto leave;
     }
@@ -491,7 +504,7 @@ _gpg_encrypt (ctrl_t ctrl,
   ret = npth_join (writer_thread, NULL);
   if (ret)
     {
-      err = gpg_error_from_errno (ret);
+      err = my_error_from_errno (ret);
       log_error ("waiting for writer thread failed: %s\n", gpg_strerror (err));
       goto leave;
     }
@@ -549,7 +562,7 @@ gpg_encrypt_blob (ctrl_t ctrl,
       *r_ciph = get_membuf (&reader_mb, r_ciphlen);
       if (!*r_ciph)
         {
-          err = gpg_error_from_syserror ();
+          err = my_error_from_syserror ();
           log_error ("error while storing the data in the reader thread: %s\n",
                      gpg_strerror (err));
         }
@@ -646,7 +659,7 @@ _gpg_decrypt (ctrl_t ctrl,
   ret = npth_join (reader_thread, NULL);
   if (ret)
     {
-      err = gpg_error_from_errno (ret);
+      err = my_error_from_errno (ret);
       log_error ("waiting for reader thread failed: %s\n", gpg_strerror (err));
       goto leave;
     }
@@ -662,7 +675,7 @@ _gpg_decrypt (ctrl_t ctrl,
   ret = npth_join (writer_thread, NULL);
   if (ret)
     {
-      err = gpg_error_from_errno (ret);
+      err = my_error_from_errno (ret);
       log_error ("waiting for writer thread failed: %s\n", gpg_strerror (err));
       goto leave;
     }
@@ -717,7 +730,7 @@ gpg_decrypt_blob (ctrl_t ctrl,
       *r_plain = get_membuf (&reader_mb, r_plainlen);
       if (!*r_plain)
         {
-          err = gpg_error_from_syserror ();
+          err = my_error_from_syserror ();
           log_error ("error while storing the data in the reader thread: %s\n",
                      gpg_strerror (err));
         }
diff --git a/common/exectool.c b/common/exectool.c
index a2828a6..766ee94 100644
--- a/common/exectool.c
+++ b/common/exectool.c
@@ -54,6 +54,13 @@ typedef struct
 } read_and_log_buffer_t;
 
 
+static inline gpg_error_t
+my_error_from_syserror (void)
+{
+  return gpg_err_make (default_errsource, gpg_err_code_from_syserror ());
+}
+
+
 static void
 read_and_log_stderr (read_and_log_buffer_t *state, es_poll_t *fderr)
 {
@@ -102,7 +109,7 @@ read_and_log_stderr (read_and_log_buffer_t *state, es_poll_t *fderr)
             }
           else if (es_ferror (fderr->stream))
             {
-              err = gpg_error_from_syserror ();
+              err = my_error_from_syserror ();
               log_error ("error reading stderr of '%s': %s\n",
                          state->pgmname, gpg_strerror (err));
               fderr->ignore = 1; /* Disable.  */
@@ -172,7 +179,7 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
           if (errno == EAGAIN)
             return 0;	/* We will just retry next time.  */
 
-          return gpg_error_from_syserror ();
+          return my_error_from_syserror ();
         }
 
       assert (c->nread <= sizeof c->buffer);
@@ -187,7 +194,7 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
       if (errno == EAGAIN)
         return 0;	/* We will just retry next time.  */
 
-      return gpg_error_from_syserror ();
+      return my_error_from_syserror ();
     }
 
   assert (nwritten <= c->nread);
@@ -196,7 +203,7 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
   assert (c->writep - c->buffer <= sizeof c->buffer);
 
   if (es_fflush (sink) && errno != EAGAIN)
-    err = gpg_error_from_syserror ();
+    err = my_error_from_syserror ();
 
   return err;
 }
@@ -272,7 +279,7 @@ gnupg_exec_tool_stream (const char *pgmname, const char *argv[],
       count = es_poll (fds, DIM(fds), -1);
       if (count == -1)
         {
-          err = gpg_error_from_syserror ();
+          err = my_error_from_syserror ();
           log_error ("error polling '%s': %s\n", pgmname, gpg_strerror (err));
           goto leave;
         }
@@ -391,13 +398,13 @@ gnupg_exec_tool (const char *pgmname, const char *argv[],
       input = es_mopen ((char *) input_string, len, len,
                         0 /* don't grow */, NULL, nop_free, "rb");
       if (! input)
-        return gpg_error_from_syserror ();
+        return my_error_from_syserror ();
     }
 
   output = es_fopenmem (0, "wb");
   if (! output)
     {
-      err = gpg_error_from_syserror ();
+      err = my_error_from_syserror ();
       goto leave;
     }
 
@@ -413,7 +420,7 @@ gnupg_exec_tool (const char *pgmname, const char *argv[],
   *result = xtrymalloc (len);
   if (*result == NULL)
     {
-      err = gpg_error_from_syserror ();
+      err = my_error_from_syserror ();
       goto leave;
     }
 

commit 345ec7323d643528d2f904765708b5ecfe51f57b
Author: Werner Koch <wk at gnupg.org>
Date:   Mon Dec 14 20:12:55 2015 +0100

    gpg: Reduce number of strings to translate.
    
    * g10/getkey.c (parse_def_secret_key): Do not make debug messages
    translatable.  Make use of print_reported_error.
    --
    
    This patch also passes all required arguments to log_debug ;-).
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/g10/getkey.c b/g10/getkey.c
index 16986cb..589f240 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -1225,19 +1225,22 @@ parse_def_secret_key (ctrl_t ctrl)
           if (pk->flags.revoked)
             {
               if (DBG_LOOKUP)
-                log_debug (_("not using %s as default key, %s"), "revoked");
+                log_debug ("not using %s as default key, %s\n",
+                           t->d, "revoked");
               continue;
             }
           if (pk->has_expired)
             {
               if (DBG_LOOKUP)
-                log_debug (_("not using %s as default key, %s"), "expired");
+                log_debug ("not using %s as default key, %s\n",
+                           t->d, "expired");
               continue;
             }
           if (pk_is_disabled (pk))
             {
               if (DBG_LOOKUP)
-                log_debug (_("not using %s as default key, %s"), "disabled");
+                log_debug ("not using %s as default key, %s\n",
+                           t->d, "disabled");
               continue;
             }
 
@@ -1253,12 +1256,9 @@ parse_def_secret_key (ctrl_t ctrl)
         {
           if (! warned && ! opt.quiet)
             {
-              if (gpg_err_code (err) == GPG_ERR_NO_SECKEY)
-                log_info (_("Warning: not using '%s' as default key: %s.\n"),
-                          t->d, gpg_strerror (err));
-              else
-                log_info (_("Warning: not using '%s' as default key: no secret key available: %s\n"),
-                          t->d, gpg_strerror (err));
+              log_info (_("Warning: not using '%s' as default key: %s\n"),
+                        t->d, gpg_strerror (GPG_ERR_NO_SECKEY));
+              print_reported_error (err, GPG_ERR_NO_SECKEY);
             }
         }
       else
@@ -1271,7 +1271,7 @@ parse_def_secret_key (ctrl_t ctrl)
     }
 
   if (! warned && opt.def_secret_key && ! t)
-    log_info (_("all values passed to '%s' ignored.\n"),
+    log_info (_("all values passed to '%s' ignored\n"),
               "--default-key");
 
   warned = 1;

commit 2ea1aebc924c3f0b2269f83cb1b80c75d9fa069c
Author: Werner Koch <wk at gnupg.org>
Date:   Mon Dec 14 19:35:03 2015 +0100

    gpg: New function to printed a detailed error code.
    
    * g10/misc.c (print_reported_error): New.
    --
    
    Often the user is only interested in a catch all error code like "not
    found" but sometimes it is useful to also see the real reason.  By
    this function this can easily be achieved.  Example:
    
      err = search_for_key (keyid)
      if (err)
        {
          log_info ("error locating key '%s': %s\n",
                    keyid, gpg_strerror (GPG_ERR_NOT_FOUND));
          print_reported_error (err, GPG_ERR_NOT_FOUND);
        }
    
    results in
    
      gpg: error locating key 'foobar': not found
      gpg: (reported error: no keyring <keybox>)
    
    where the second line is only printed in verbose mode and if ERR is
    not GPG_ERR_NOT_FOUND.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/g10/main.h b/g10/main.h
index e9f557d..e4c6e8f 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -89,6 +89,7 @@ void print_pubkey_algo_note (pubkey_algo_t algo);
 void print_cipher_algo_note (cipher_algo_t algo);
 void print_digest_algo_note (digest_algo_t algo);
 void print_digest_rejected_note (enum gcry_md_algos algo);
+void print_reported_error (gpg_error_t err, gpg_err_code_t skip_if_ec);
 void additional_weak_digest (const char* digestname);
 
 /*-- armor.c --*/
diff --git a/g10/misc.c b/g10/misc.c
index 547944d..57d5fef 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -358,6 +358,31 @@ print_digest_rejected_note (enum gcry_md_algos algo)
 }
 
 
+/* Print a message
+ *  "(reported error: %s)\n
+ * in verbose mode to further explain an error.  If the error code has
+ * the value IGNORE_EC no message is printed.  A message is also not
+ * printed if ERR is 0.  */
+void
+print_reported_error (gpg_error_t err, gpg_err_code_t ignore_ec)
+{
+  if (!opt.verbose)
+    return;
+
+  if (!gpg_err_code (err))
+    ;
+  else if (gpg_err_code (err) == ignore_ec)
+    ;
+  else if (gpg_err_source (err) == GPG_ERR_SOURCE_DEFAULT)
+    log_info (_("(reported error: %s\n)"),
+              gpg_strerror (err));
+  else
+    log_info (_("(reported error: %s <%s>\n)"),
+              gpg_strerror (err), gpg_strsource (err));
+
+}
+
+
 /* Map OpenPGP algo numbers to those used by Libgcrypt.  We need to do
    this for algorithms we implemented in Libgcrypt after they become
    part of OpenPGP.  */

-----------------------------------------------------------------------

Summary of changes:
 common/call-gpg.c | 41 +++++++++++++++++++++++++++--------------
 common/exectool.c | 23 +++++++++++++++--------
 g10/getkey.c      | 20 ++++++++++----------
 g10/main.h        |  1 +
 g10/misc.c        | 25 +++++++++++++++++++++++++
 5 files changed, 78 insertions(+), 32 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list