aboutsummaryrefslogtreecommitdiffstats
path: root/agent/command.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2004-01-29 20:17:27 +0000
committerWerner Koch <[email protected]>2004-01-29 20:17:27 +0000
commitb11106ebf0e34caae45a68b87fb81f63faf2004f (patch)
treea5f6ba8a0dac961b66185dcf16078907dd810ef8 /agent/command.c
parent* README: Updated. (diff)
downloadgnupg-b11106ebf0e34caae45a68b87fb81f63faf2004f.tar.gz
gnupg-b11106ebf0e34caae45a68b87fb81f63faf2004f.zip
* agent.h (server_control_s): Add connection_fd field.
* command.c (start_command_handler): Init it here. * gpg-agent.c (agent_init_default_ctrl): and here. * call-scd.c: Add the CTRL arg to all functions calling start_scd and pass it to start_scd. Changed all callers (start_scd): Keep track of the current active connection. (agent_reset_scd): New. * command.c (start_command_handler): Call it here. * learncard.c (agent_handle_learn): Add arg CTRL; changed caller. (send_cert_back): Ditto.
Diffstat (limited to 'agent/command.c')
-rw-r--r--agent/command.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/agent/command.c b/agent/command.c
index 0406ea439..aec48e194 100644
--- a/agent/command.c
+++ b/agent/command.c
@@ -579,9 +579,10 @@ cmd_get_confirmation (ASSUAN_CONTEXT ctx, char *line)
static int
cmd_learn (ASSUAN_CONTEXT ctx, char *line)
{
+ ctrl_t ctrl = assuan_get_pointer (ctx);
int rc;
- rc = agent_handle_learn (has_option (line, "--send")? ctx : NULL);
+ rc = agent_handle_learn (ctrl, has_option (line, "--send")? ctx : NULL);
if (rc)
log_error ("command learn failed: %s\n", gpg_strerror (rc));
return map_to_assuan_status (rc);
@@ -771,6 +772,7 @@ start_command_handler (int listen_fd, int fd)
else
{
rc = assuan_init_connected_socket_server (&ctx, fd);
+ ctrl.connection_fd = fd;
}
if (rc)
{
@@ -816,6 +818,8 @@ start_command_handler (int listen_fd, int fd)
}
}
+ /* Reset the SCD if needed. */
+ agent_reset_scd (&ctrl);
assuan_deinit_server (ctx);
if (ctrl.display)