From a084924d07be16dbbbf4b34d463c67c8d4c117be Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 10 Sep 2020 10:49:54 +0200 Subject: [PATCH] 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 --- dirmngr/server.c | 2 +- tools/gpg-connect-agent.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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;