aboutsummaryrefslogtreecommitdiffstats
path: root/agent/agent.h
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/agent.h
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 '')
-rw-r--r--agent/agent.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/agent/agent.h b/agent/agent.h
index 95b0ba4cd..b70a4ae2d 100644
--- a/agent/agent.h
+++ b/agent/agent.h
@@ -83,6 +83,7 @@ struct server_local_s;
struct server_control_s {
struct server_local_s *server_local;
+ int connection_fd; /* -1 or an identifier for the current connection. */
char *display;
char *ttyname;
char *ttytype;
@@ -98,6 +99,7 @@ struct server_control_s {
};
typedef struct server_control_s *CTRL;
+typedef struct server_control_s *ctrl_t;
struct pin_entry_info_s {
@@ -194,33 +196,38 @@ int divert_generic_cmd (CTRL ctrl, const char *cmdline, void *assuan_context);
/*-- call-scd.c --*/
-int agent_card_learn (void (*kpinfo_cb)(void*, const char *),
+int agent_reset_scd (ctrl_t ctrl);
+int agent_card_learn (ctrl_t ctrl,
+ void (*kpinfo_cb)(void*, const char *),
void *kpinfo_cb_arg,
void (*certinfo_cb)(void*, const char *),
void *certinfo_cb_arg,
void (*sinfo_cb)(void*, const char *,
size_t, const char *),
void *sinfo_cb_arg);
-int agent_card_serialno (char **r_serialno);
-int agent_card_pksign (const char *keyid,
+int agent_card_serialno (ctrl_t ctrl, char **r_serialno);
+int agent_card_pksign (ctrl_t ctrl,
+ const char *keyid,
int (*getpin_cb)(void *, const char *, char*, size_t),
void *getpin_cb_arg,
const unsigned char *indata, size_t indatalen,
char **r_buf, size_t *r_buflen);
-int agent_card_pkdecrypt (const char *keyid,
+int agent_card_pkdecrypt (ctrl_t ctrl,
+ const char *keyid,
int (*getpin_cb)(void *, const char *, char*,size_t),
void *getpin_cb_arg,
const unsigned char *indata, size_t indatalen,
char **r_buf, size_t *r_buflen);
-int agent_card_readcert (const char *id, char **r_buf, size_t *r_buflen);
-int agent_card_readkey (const char *id, unsigned char **r_buf);
-int agent_card_scd (const char *cmdline,
+int agent_card_readcert (ctrl_t ctrl,
+ const char *id, char **r_buf, size_t *r_buflen);
+int agent_card_readkey (ctrl_t ctrl, const char *id, unsigned char **r_buf);
+int agent_card_scd (ctrl_t ctrl, const char *cmdline,
int (*getpin_cb)(void *, const char *, char*, size_t),
void *getpin_cb_arg, void *assuan_context);
/*-- learncard.c --*/
-int agent_handle_learn (void *assuan_context);
+int agent_handle_learn (ctrl_t ctrl, void *assuan_context);
#endif /*AGENT_H*/