gpgconf: Exit with failure if --launch fails.
authorWerner Koch <wk@gnupg.org>
Wed, 17 Dec 2014 09:36:24 +0000 (10:36 +0100)
committerWerner Koch <wk@gnupg.org>
Wed, 17 Dec 2014 09:39:31 +0000 (10:39 +0100)
* tools/gpgconf-comp.c (gc_component_launch): Return an error code.
* tools/gpgconf.c (main): Exit if launch failed.
--
GnuPG-bug-id: 1791

tools/gpgconf-comp.c
tools/gpgconf.c
tools/gpgconf.h

index 77139bb..8c47b2e 100644 (file)
@@ -1142,7 +1142,7 @@ dirmngr_runtime_change (int killflag)
 
 
 /* Launch the gpg-agent or the dirmngr if not already running.  */
-void
+gpg_error_t
 gc_component_launch (int component)
 {
   gpg_error_t err;
@@ -1176,6 +1176,7 @@ gc_component_launch (int component)
               " NOP",
               gpg_strerror (err));
   gnupg_release_process (pid);
+  return err;
 }
 
 
index 31804f5..423a66c 100644 (file)
@@ -281,9 +281,17 @@ main (int argc, char **argv)
               exit (1);
             }
           else if (cmd == aLaunch)
-            gc_component_launch (idx);
+            {
+              if (gc_component_launch (idx))
+                exit (1);
+            }
           else
-            gc_component_kill (idx);
+            {
+              /* We don't error out if the kill failed because this
+                 command should do nothing if the component is not
+                 running.  */
+              gc_component_kill (idx);
+            }
         }
       break;
 
index 0286c27..d63833d 100644 (file)
@@ -45,7 +45,7 @@ char *gc_percent_escape (const char *src);
 void gc_error (int status, int errnum, const char *fmt, ...);
 
 /* Launch given component.  */
-void gc_component_launch (int component);
+gpg_error_t gc_component_launch (int component);
 
 /* Kill given component.  */
 void gc_component_kill (int component);