commit:     6a3a033243058a2724bc6c8d8cb2b2bd6cf73109
Author:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  4 23:02:12 2018 +0000
Commit:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sat Jul  7 05:22:12 2018 +0000
URL:        https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=6a3a0332

gkeys actions.py: Add verify() recursion detection and exit

Handles the case of incorrect configuration or keyring problems.
Reported by irc user "puchu" in #gentoo-keys.

Signed-off-by: Brian Dolbec <dolsen <AT> gentoo.org>

 gkeys/gkeys/actionbase.py |  1 +
 gkeys/gkeys/actions.py    | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/gkeys/gkeys/actionbase.py b/gkeys/gkeys/actionbase.py
index 3993be4..23b7161 100644
--- a/gkeys/gkeys/actionbase.py
+++ b/gkeys/gkeys/actionbase.py
@@ -43,6 +43,7 @@ class ActionBase(object):
         self._keyhandler = None
         self._gpg = None
         self.category = None
+        self.verify_recursion = False
 
 
     @property

diff --git a/gkeys/gkeys/actions.py b/gkeys/gkeys/actions.py
index 0f03880..f9bba7a 100644
--- a/gkeys/gkeys/actions.py
+++ b/gkeys/gkeys/actions.py
@@ -779,7 +779,7 @@ class Actions(ActionBase):
         if not keys:
             return (False, ['No installed keys found, try installkey action.'])
         key = self.seedhandler.seeds.nick_search(args.nick)
-        if not key:
+        if not key and not self.verify_recursion:
             if args.nick:
                 messages.append(_unicode(
                     "Failed to find.........: %s in category: %s")
@@ -788,7 +788,15 @@ class Actions(ActionBase):
             args.nick = self.config.get_key('verify-nick')
             messages.append(_unicode("Using config defaults..: %s %s")
                 % (args.category, args.nick))
+            self.verify_recursion = True
             return self.verify(args, messages)
+        elif self.verify_recursion:
+            messages.append(_unicode(
+                "Failed to find.........: %s in category: %s")
+                % (args.category, args.nick))
+            messages.append("    ...giving up")
+            self.verify_recursion = False
+            return (False, ['No installed verification keys found, try 
installkey action.'])
         return self._verify(args, key, messages)
 
 

Reply via email to