aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2020-09-10 08:49:54 +0000
committerWerner Koch <[email protected]>2020-09-10 09:05:37 +0000
commita084924d07be16dbbbf4b34d463c67c8d4c117be (patch)
treefc4e5826284c47836b7f5da8938d98a8622cbb1e
parentdirmngr: Fix the pool keyserver case for a single host in the pool. (diff)
downloadgnupg-a084924d07be16dbbbf4b34d463c67c8d4c117be.tar.gz
gnupg-a084924d07be16dbbbf4b34d463c67c8d4c117be.zip
gpg-connect-agent: Catch signals so that SIGPIPE is ignored.
* dirmngr/server.c (cmd_killdirmngr): Return 0. * tools/gpg-connect-agent.c (main): Catch signals. -- And we also print nicer diagnostics. The reason we need this is that for example "gpgconf --kill dirmngr" uses gpg-connect-agent to send a command to dirmngr. This may results in a SIGPIPE which in turn leads to an annoying error message from gpgconf. Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--dirmngr/server.c2
-rw-r--r--tools/gpg-connect-agent.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/dirmngr/server.c b/dirmngr/server.c
index 780722d47..407863330 100644
--- a/dirmngr/server.c
+++ b/dirmngr/server.c
@@ -2718,7 +2718,7 @@ cmd_killdirmngr (assuan_context_t ctx, char *line)
ctrl->server_local->stopme = 1;
assuan_set_flag (ctx, ASSUAN_FORCE_CLOSE, 1);
- return gpg_error (GPG_ERR_EOF);
+ return 0;
}
diff --git a/tools/gpg-connect-agent.c b/tools/gpg-connect-agent.c
index 7eb7ffa3a..bf32a74de 100644
--- a/tools/gpg-connect-agent.c
+++ b/tools/gpg-connect-agent.c
@@ -1182,6 +1182,7 @@ main (int argc, char **argv)
assuan_set_gpg_err_source (0);
+ gnupg_init_signals (0, NULL);
opt.autostart = 1;
opt.connect_flags = 1;