aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2022-06-02 06:50:57 +0000
committerNIIBE Yutaka <[email protected]>2022-06-02 06:50:57 +0000
commit5a327e8001c4698330fabc83421277a590d5b085 (patch)
tree13a5c97445e88d3bac3a2989caf83235ffeda12a
parenttools: Add --unbuffered option to gpg-connect-agent. (diff)
downloadgnupg-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.c12
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;
}