diff options
author | NIIBE Yutaka <[email protected]> | 2022-06-02 06:50:57 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2022-06-02 06:50:57 +0000 |
commit | 5a327e8001c4698330fabc83421277a590d5b085 (patch) | |
tree | 13a5c97445e88d3bac3a2989caf83235ffeda12a | |
parent | tools: Add --unbuffered option to gpg-connect-agent. (diff) | |
download | gnupg-5a327e8001c4698330fabc83421277a590d5b085.tar.gz gnupg-5a327e8001c4698330fabc83421277a590d5b085.zip |
tools: Add a way to cancell INQUIRE for gpg-connect-agent.
* tools/gpg-connect-agent.c (handle_inquire): When the helper program
exit status is not 0, it means cancellation, now.
--
GnuPG-bug-id: 6010
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | tools/gpg-connect-agent.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/tools/gpg-connect-agent.c b/tools/gpg-connect-agent.c index 2ae1374fc..626c6c61b 100644 --- a/tools/gpg-connect-agent.c +++ b/tools/gpg-connect-agent.c @@ -1978,6 +1978,7 @@ handle_inquire (assuan_context_t ctx, char *line) FILE *fp = NULL; char buffer[1024]; int rc, n; + int cancelled = 0; /* Skip the command and trailing spaces. */ for (; *line && !spacep (line); line++) @@ -2059,21 +2060,22 @@ handle_inquire (assuan_context_t ctx, char *line) log_error ("error reading from '%s': %s\n", d->file, strerror (errno)); } - rc = assuan_send_data (ctx, NULL, 0); - if (rc) - log_error ("sending data back failed: %s\n", gpg_strerror (rc) ); - if (d->is_var) ; else if (d->is_prog) { #ifndef HAVE_W32CE_SYSTEM if (pclose (fp)) - log_error ("error running '%s': %s\n", d->file, strerror (errno)); + cancelled = 1; #endif } else fclose (fp); + + rc = assuan_send_data (ctx, NULL, cancelled); + if (rc) + log_error ("sending data back failed: %s\n", gpg_strerror (rc) ); + return 1; } |