aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2002-08-20 11:01:43 +0000
committerMarcus Brinkmann <[email protected]>2002-08-20 11:01:43 +0000
commitd50bc6abc1a22999bceac61e1ef80bc571fadfff (patch)
treef3306056f65a57c0e727e3328dd71ec22da80b08
parent* decrypt.c (is_token,skip_token): Duplicated from verify.c (diff)
downloadgpgme-d50bc6abc1a22999bceac61e1ef80bc571fadfff.tar.gz
gpgme-d50bc6abc1a22999bceac61e1ef80bc571fadfff.zip
2002-08-20 Marcus Brinkmann <[email protected]>
* gpgme.c (_gpgme_set_op_info): Append data on subsequent calls. * encrypt-sign.c (encrypt_sign_status_handler): Remove op_info handling.
-rw-r--r--gpgme/ChangeLog6
-rw-r--r--gpgme/encrypt-sign.c9
-rw-r--r--gpgme/gpgme.c19
3 files changed, 17 insertions, 17 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog
index 37e90d2a..0a31b5c2 100644
--- a/gpgme/ChangeLog
+++ b/gpgme/ChangeLog
@@ -1,3 +1,9 @@
+2002-08-20 Marcus Brinkmann <[email protected]>
+
+ * gpgme.c (_gpgme_set_op_info): Append data on subsequent calls.
+ * encrypt-sign.c (encrypt_sign_status_handler): Remove op_info
+ handling.
+
2002-08-19 Werner Koch <[email protected]>
* decrypt.c (is_token,skip_token): Duplicated from verify.c
diff --git a/gpgme/encrypt-sign.c b/gpgme/encrypt-sign.c
index 3ea6f285..9e49e584 100644
--- a/gpgme/encrypt-sign.c
+++ b/gpgme/encrypt-sign.c
@@ -40,16 +40,7 @@ encrypt_sign_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args)
size_t encrypt_info_len;
_gpgme_encrypt_status_handler (ctx, code, args);
-
- if (code == GPGME_STATUS_EOF)
- {
- encrypt_info = gpgme_data_release_and_get_mem (ctx->op_info,
- &encrypt_info_len);
- ctx->op_info = NULL;
- }
_gpgme_sign_status_handler (ctx, code, args);
- if (code == GPGME_STATUS_EOF && encrypt_info)
- _gpgme_data_append (ctx->op_info, encrypt_info, encrypt_info_len);
}
diff --git a/gpgme/gpgme.c b/gpgme/gpgme.c
index f96bf5ae..6ee2bb18 100644
--- a/gpgme/gpgme.c
+++ b/gpgme/gpgme.c
@@ -175,20 +175,23 @@ gpgme_get_op_info (GpgmeCtx ctx, int reserved)
}
-/*
- * Store the data object with the operation info in the
- * context. Caller should not use that object anymore.
- */
+/* Store the data object INFO with the operation info in the context
+ CTX. INFO is consumed. Subsequent calls append the data. */
void
_gpgme_set_op_info (GpgmeCtx ctx, GpgmeData info)
{
assert (ctx);
- gpgme_data_release (ctx->op_info);
- ctx->op_info = NULL;
-
- if (info)
+ if (!ctx->op_info)
ctx->op_info = info;
+ else
+ {
+ char *info_mem = 0;
+ size_t info_len;
+
+ info_mem = gpgme_data_release_and_get_mem (info, &info_len);
+ _gpgme_data_append (ctx->op_info, info_mem, info_len);
+ }
}