diff options
-rw-r--r-- | agent/ChangeLog | 6 | ||||
-rw-r--r-- | agent/call-scd.c | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/agent/ChangeLog b/agent/ChangeLog index a9b67a80a..54e2256ec 100644 --- a/agent/ChangeLog +++ b/agent/ChangeLog @@ -1,3 +1,9 @@ +2010-08-11 Werner Koch <[email protected]> + + * call-scd.c (agent_card_scd): Pass assuan comment lines to the + caller. + (ASSUAN_CONVEY_COMMENTS): Provide replacement if needed. + 2010-08-09 Werner Koch <[email protected]> * Makefile.am (t_common_ldadd): Add NETLIBS for sake of the TCP diff --git a/agent/call-scd.c b/agent/call-scd.c index 0cbc836bd..81e0834ab 100644 --- a/agent/call-scd.c +++ b/agent/call-scd.c @@ -44,6 +44,15 @@ #define MAX_OPEN_FDS 20 #endif +/* This Assuan flag is only available since libassuan 2.0.2. Because + comments lines are comments anyway we can use a replacement which + might not do anything. assuan_{g,s}et_flag don't return an error + thus there won't be any ABI problem. */ +#ifndef ASSUAN_CONVEY_COMMENTS +#define ASSUAN_CONVEY_COMMENTS 4 +#endif + + /* Definition of module local data of the CTRL structure. */ struct scd_local_s { @@ -1121,6 +1130,7 @@ agent_card_scd (ctrl_t ctrl, const char *cmdline, { int rc; struct inq_needpin_s inqparm; + int saveflag; rc = start_scd (ctrl); if (rc) @@ -1130,10 +1140,13 @@ agent_card_scd (ctrl_t ctrl, const char *cmdline, inqparm.getpin_cb = getpin_cb; inqparm.getpin_cb_arg = getpin_cb_arg; inqparm.passthru = assuan_context; + saveflag = assuan_get_flag (ctrl->scd_local->ctx, ASSUAN_CONVEY_COMMENTS); + assuan_set_flag (ctrl->scd_local->ctx, ASSUAN_CONVEY_COMMENTS, 1); rc = assuan_transact (ctrl->scd_local->ctx, cmdline, pass_data_thru, assuan_context, inq_needpin, &inqparm, pass_status_thru, assuan_context); + assuan_set_flag (ctrl->scd_local->ctx, ASSUAN_CONVEY_COMMENTS, saveflag); if (rc) { return unlock_scd (ctrl, rc); |