aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2010-08-11 13:11:04 +0000
committerWerner Koch <[email protected]>2010-08-11 13:11:04 +0000
commit8a61c3020754fbbc51ef4e32093dfeda2b3fa3f4 (patch)
treed62565573461c504f83fefaf7a92cf026d5d554c
parentSupport "-" for --output. (diff)
downloadgnupg-8a61c3020754fbbc51ef4e32093dfeda2b3fa3f4.tar.gz
gnupg-8a61c3020754fbbc51ef4e32093dfeda2b3fa3f4.zip
Pass on comments from SCD.
Diffstat (limited to '')
-rw-r--r--agent/ChangeLog6
-rw-r--r--agent/call-scd.c13
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);