[Pkg-gnupg-commit] [gnupg2] 86/116: gpgconf: Allow "all" for --launch, --kill, and --reload.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Tue Jan 24 04:40:57 UTC 2017


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

dkg pushed a commit to branch master
in repository gnupg2.

commit 2312248b2e3adffa52d8a3ac4f24fe2c88f0f569
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jan 18 10:01:55 2017 +0100

    gpgconf: Allow "all" for --launch, --kill, and --reload.
    
    * tools/gpgconf-comp.c (gc_component_launch): Allow -1 for COMPONENT.
    (gc_component_kill): Ditto.
    (gc_component_reload): For robustness change the condition to < 0.
    * tools/gpgconf.c (main) <aLaunch, aKill, aReload>: Support argument
    "all".
    
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 doc/tools.texi       | 15 +++++++++------
 tools/gpgconf-comp.c | 21 +++++++++++++++++++--
 tools/gpgconf.c      | 14 +++++++++++++-
 3 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/doc/tools.texi b/doc/tools.texi
index f0e6fe7..bdef6a2 100644
--- a/doc/tools.texi
+++ b/doc/tools.texi
@@ -336,9 +336,10 @@ force an update of that file this command can be used:
 
 @item --reload [@var{component}]
 @opindex reload
-Reload all or the given component. This is basically the same as sending
-a SIGHUP to the component.  Components which don't support reloading are
-ignored.
+Reload all or the given component. This is basically the same as
+sending a SIGHUP to the component.  Components which don't support
+reloading are ignored.  Without @var{component} or by using "all" for
+ at var{component} all components which are daemons are reloaded.
 
 @item --launch [@var{component}]
 @opindex launch
@@ -346,14 +347,16 @@ If the @var{component} is not already running, start it.
 @command{component} must be a daemon.  This is in general not required
 because the system starts these daemons as needed.  However, external
 software making direct use of @command{gpg-agent} or @command{dirmngr}
-may use this command to ensure that they are started.
+may use this command to ensure that they are started.  Using "all" for
+ at var{component} launches all components which are daemons.
 
 @item --kill [@var{component}]
 @opindex kill
 Kill the given component.  Components which support killing are
 @command{gpg-agent} and @command{scdaemon}.  Components which don't
-support reloading are ignored.  Note that as of now reload and kill
-have the same effect for @command{scdaemon}.
+support reloading are ignored.  Using "all" for @var{component} kills
+all components running as daemons.  Note that as of now reload and
+kill have the same effect for @command{scdaemon}.
 
 @item --create-socketdir
 @opindex create-socketdir
diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c
index 2dcf075..300f63d 100644
--- a/tools/gpgconf-comp.c
+++ b/tools/gpgconf-comp.c
@@ -1263,6 +1263,14 @@ gc_component_launch (int component)
   int i;
   pid_t pid;
 
+  if (component < 0)
+    {
+      err = gc_component_launch (GC_COMPONENT_GPG_AGENT);
+      if (!err)
+        err = gc_component_launch (GC_COMPONENT_DIRMNGR);
+      return err;
+    }
+
   if (!(component == GC_COMPONENT_GPG_AGENT
         || component == GC_COMPONENT_DIRMNGR))
     {
@@ -1304,7 +1312,16 @@ gc_component_kill (int component)
   for (backend = 0; backend < GC_BACKEND_NR; backend++)
     runtime[backend] = 0;
 
-  if (component >= 0)
+  if (component < 0)
+    {
+      for (component = 0; component < GC_COMPONENT_NR; component++)
+        {
+          option = gc_component[component].options;
+          for (; option && option->name; option++)
+            runtime[option->backend] = 1;
+        }
+    }
+  else
     {
       assert (component < GC_COMPONENT_NR);
       option = gc_component[component].options;
@@ -1333,7 +1350,7 @@ gc_component_reload (int component)
   for (backend = 0; backend < GC_BACKEND_NR; backend++)
     runtime[backend] = 0;
 
-  if (component == -1)
+  if (component < 0)
     {
       for (component = 0; component < GC_COMPONENT_NR; component++)
         {
diff --git a/tools/gpgconf.c b/tools/gpgconf.c
index a1034e6..c69b1c3 100644
--- a/tools/gpgconf.c
+++ b/tools/gpgconf.c
@@ -589,6 +589,18 @@ main (int argc, char **argv)
 	  es_putc ('\n', es_stderr);
 	  exit (2);
 	}
+      else if (!strcmp (fname, "all"))
+        {
+          if (cmd == aLaunch)
+            {
+              if (gc_component_launch (-1))
+                exit (1);
+            }
+          else
+            {
+              gc_component_kill (-1);
+            }
+        }
       else
         {
           /* Launch/Kill a given component.  */
@@ -617,7 +629,7 @@ main (int argc, char **argv)
       break;
 
     case aReload:
-      if (!fname)
+      if (!fname || !strcmp (fname, "all"))
 	{
           /* Reload all.  */
           gc_component_reload (-1);

-- 
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