[Pkg-gnupg-commit] [gnupg2] 29/241: gpg: When showing conflicts, also show bindings with no recorded sigs.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Dec 9 20:31:49 UTC 2015


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit d3eca517745a862432fcfeaa729e5333b15ffa6a
Author: Neal H. Walfield <neal at g10code.com>
Date:   Tue Oct 20 14:50:21 2015 +0200

    gpg: When showing conflicts, also show bindings with no recorded sigs.
    
    * g10/tofu.c (signature_stats_collect_cb): If the time_ago column is
    NULL, then both time_ago and count should be 0.
    (get_trust): Reverse the direction of the join so that we also get
    statistics about bindings without any signatures.
    
    --
    Signed-off-by: Neal H. Walfield <neal at g10code.com>
---
 g10/tofu.c | 54 ++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 34 insertions(+), 20 deletions(-)

diff --git a/g10/tofu.c b/g10/tofu.c
index d34a204..5886c5e 100644
--- a/g10/tofu.c
+++ b/g10/tofu.c
@@ -1061,27 +1061,39 @@ signature_stats_collect_cb (void *cookie, int argc, char **argv,
     }
   i ++;
 
-  tail = NULL;
-  errno = 0;
-  time_ago = strtol (argv[i], &tail, 0);
-  if (errno || ! (strcmp (tail, ".0") == 0 || *tail == '\0'))
+  if (! argv[i])
+    time_ago = 0;
+  else
     {
-      /* Abort.  */
-      log_error ("%s: Error converting %s to an integer (tail = '%s')\n",
-		 __func__, argv[i], tail);
-      return 1;
+      tail = NULL;
+      errno = 0;
+      time_ago = strtol (argv[i], &tail, 0);
+      if (errno || ! (strcmp (tail, ".0") == 0 || *tail == '\0'))
+        {
+          /* Abort.  */
+          log_error ("%s: Error converting %s to an integer (tail = '%s')\n",
+                     __func__, argv[i], tail);
+          return 1;
+        }
     }
   i ++;
 
-  tail = NULL;
-  errno = 0;
-  count = strtoul (argv[i], &tail, 0);
-  if (errno || ! (strcmp (tail, ".0") == 0 || *tail == '\0'))
+  /* If time_ago is NULL, then we had no messages, but we still have a
+     single row, which count(*) turns into 1.  */
+  if (! argv[i - 1])
+    count = 0;
+  else
     {
-      /* Abort.  */
-      log_error ("%s: Error converting %s to an integer (tail = '%s')\n",
-		 __func__, argv[i], tail);
-      return 1;
+      tail = NULL;
+      errno = 0;
+      count = strtoul (argv[i], &tail, 0);
+      if (errno || ! (strcmp (tail, ".0") == 0 || *tail == '\0'))
+        {
+          /* Abort.  */
+          log_error ("%s: Error converting %s to an integer (tail = '%s')\n",
+                     __func__, argv[i], tail);
+          return 1;
+        }
     }
   i ++;
 
@@ -1551,10 +1563,12 @@ get_trust (struct db *dbs, const char *fingerprint, const char *email,
        "         else round(delta / %d) * %d\n"
        "        end time_ago,\n"
        "        delta time_ago_raw\n"
-       "       from (select *,\n"
-       "              cast(strftime('%%s','now') - sig_time as real) delta\n"
-       "             from signatures) ss\n"
-       "       left join bindings on ss.binding = bindings.oid)\n"
+       "       from bindings\n"
+       "       left join\n"
+       "         (select *,\n"
+       "            cast(strftime('%%s','now') - sig_time as real) delta\n"
+       "           from signatures) ss\n"
+       "        on ss.binding = bindings.oid)\n"
        " where email = %Q\n"
        " group by fingerprint, time_ago\n"
        /* Make sure the current key is first.  */

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list