aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-12-17 09:36:24 +0000
committerWerner Koch <[email protected]>2014-12-17 09:39:31 +0000
commit5cb6df8996623c00eaa2a39e3037101585442f7e (patch)
tree62b1d72a4e4302cc4a15a88f4fdd07d44c176799
parentpo: Update Japanese Translation. (diff)
downloadgnupg-5cb6df8996623c00eaa2a39e3037101585442f7e.tar.gz
gnupg-5cb6df8996623c00eaa2a39e3037101585442f7e.zip
gpgconf: Exit with failure if --launch fails.
* tools/gpgconf-comp.c (gc_component_launch): Return an error code. * tools/gpgconf.c (main): Exit if launch failed. -- GnuPG-bug-id: 1791
-rw-r--r--tools/gpgconf-comp.c3
-rw-r--r--tools/gpgconf.c12
-rw-r--r--tools/gpgconf.h2
3 files changed, 13 insertions, 4 deletions
diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c
index 77139bbae..8c47b2e5e 100644
--- a/tools/gpgconf-comp.c
+++ b/tools/gpgconf-comp.c
@@ -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;
}
diff --git a/tools/gpgconf.c b/tools/gpgconf.c
index 31804f50e..423a66c71 100644
--- a/tools/gpgconf.c
+++ b/tools/gpgconf.c
@@ -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;
diff --git a/tools/gpgconf.h b/tools/gpgconf.h
index 0286c2737..d63833dd9 100644
--- a/tools/gpgconf.h
+++ b/tools/gpgconf.h
@@ -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);