diff options
author | Werner Koch <[email protected]> | 2004-01-29 20:17:27 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2004-01-29 20:17:27 +0000 |
commit | b11106ebf0e34caae45a68b87fb81f63faf2004f (patch) | |
tree | a5f6ba8a0dac961b66185dcf16078907dd810ef8 /agent/learncard.c | |
parent | * README: Updated. (diff) | |
download | gnupg-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/learncard.c')
-rw-r--r-- | agent/learncard.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/agent/learncard.c b/agent/learncard.c index a76f2652a..76e8986f8 100644 --- a/agent/learncard.c +++ b/agent/learncard.c @@ -255,13 +255,13 @@ make_shadow_info (const char *serialno, const char *idstring) } static int -send_cert_back (const char *id, void *assuan_context) +send_cert_back (ctrl_t ctrl, const char *id, void *assuan_context) { int rc; char *derbuf; size_t derbuflen; - rc = agent_card_readcert (id, &derbuf, &derbuflen); + rc = agent_card_readcert (ctrl, id, &derbuf, &derbuflen); if (rc) { log_error ("error reading certificate: %s\n", @@ -287,7 +287,7 @@ send_cert_back (const char *id, void *assuan_context) /* Perform the learn operation. If ASSUAN_CONTEXT is not NULL all new certificates are send via Assuan */ int -agent_handle_learn (void *assuan_context) +agent_handle_learn (ctrl_t ctrl, void *assuan_context) { int rc; struct kpinfo_cb_parm_s parm; @@ -313,12 +313,12 @@ agent_handle_learn (void *assuan_context) memset (&sparm, 0, sizeof sparm); /* Check whether a card is present and get the serial number */ - rc = agent_card_serialno (&serialno); + rc = agent_card_serialno (ctrl, &serialno); if (rc) goto leave; /* now gather all the available info */ - rc = agent_card_learn (kpinfo_cb, &parm, certinfo_cb, &cparm, + rc = agent_card_learn (ctrl, kpinfo_cb, &parm, certinfo_cb, &cparm, sinfo_cb, &sparm); if (!rc && (parm.error || cparm.error || sparm.error)) rc = parm.error? parm.error : cparm.error? cparm.error : sparm.error; @@ -354,7 +354,7 @@ agent_handle_learn (void *assuan_context) if (assuan_context) { - rc = send_cert_back (citem->id, assuan_context); + rc = send_cert_back (ctrl, citem->id, assuan_context); if (rc) goto leave; citem->done = 1; @@ -380,7 +380,7 @@ agent_handle_learn (void *assuan_context) continue; /* unknown - store it */ - rc = agent_card_readkey (item->id, &pubkey); + rc = agent_card_readkey (ctrl, item->id, &pubkey); if (rc) { log_debug ("agent_card_readkey failed: %s\n", gpg_strerror (rc)); @@ -430,7 +430,7 @@ agent_handle_learn (void *assuan_context) } if (!citem) { - rc = send_cert_back (item->id, assuan_context); + rc = send_cert_back (ctrl, item->id, assuan_context); if (rc) goto leave; } |