diff options
author | Marcus Brinkmann <[email protected]> | 2003-04-25 14:24:17 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2003-04-25 14:24:17 +0000 |
commit | 8002f98d48c3539e0211add8881620ea16cea21e (patch) | |
tree | 89ab8eefdb56085484a19124ddbeb8dcce54b5ba /gpgme/encrypt-sign.c | |
parent | 2003-04-25 Marcus Brinkmann <[email protected]> (diff) | |
download | gpgme-8002f98d48c3539e0211add8881620ea16cea21e.tar.gz gpgme-8002f98d48c3539e0211add8881620ea16cea21e.zip |
2003-04-25 Marcus Brinkmann <[email protected]>
* ops.h (_gpgme_passphrase_start): Remove prototype.
* passphrase.c: Do not include <assert.h>, "util.h" or
"debug.h", but "gpgme.h".
(struct passphrase_result): Change to typedef for op_data_t.
(release_passphrase_result): Rename to release_op_data.
(_gpgme_passphrase_status_handler): Change first argument to void *.
Use new op_data_t type.
(_gpgme_passphrase_command_handler): Use new op_data_t type.
(_gpgme_passphrase_start): Remove function.
* decrypt.c (_gpgme_decrypt_start): Rewrite error handling. Do
not call _gpgme_passphrase_start, but install command handler.
* encrypt.c (_gpgme_op_encrypt_start): Likewise.
* encrypt-sign.c (_gpgme_op_encrypt_sign_start): Likewise.
* sign.c (_gpgme_op_sign_start): Likewise.
Diffstat (limited to 'gpgme/encrypt-sign.c')
-rw-r--r-- | gpgme/encrypt-sign.c | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/gpgme/encrypt-sign.c b/gpgme/encrypt-sign.c index 2ed1b1c6..68ab115c 100644 --- a/gpgme/encrypt-sign.c +++ b/gpgme/encrypt-sign.c @@ -33,12 +33,10 @@ static GpgmeError -encrypt_sign_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args) +encrypt_sign_status_handler (void *priv, GpgmeStatusCode code, char *args) { - GpgmeError err = _gpgme_encrypt_status_handler (ctx, code, args); - if (err) - return err; - return _gpgme_sign_status_handler (ctx, code, args); + return _gpgme_encrypt_status_handler (priv, code, args) + || _gpgme_sign_status_handler (priv, code, args); } @@ -47,41 +45,31 @@ _gpgme_op_encrypt_sign_start (GpgmeCtx ctx, int synchronous, GpgmeRecipients recp, GpgmeData plain, GpgmeData cipher) { - GpgmeError err = 0; + GpgmeError err; err = _gpgme_op_reset (ctx, synchronous); if (err) - goto leave; - - err = _gpgme_passphrase_start (ctx); - if (err) - goto leave; - - _gpgme_engine_set_status_handler (ctx->engine, - encrypt_sign_status_handler, ctx); + return err; - /* Check the supplied data */ if (!plain) - { - err = GPGME_No_Data; - goto leave; - } + return GPGME_No_Data; if (!cipher) + return GPGME_Invalid_Value; + + if (ctx->passphrase_cb) { - err = GPGME_Invalid_Value; - goto leave; + err = _gpgme_engine_set_command_handler (ctx->engine, + _gpgme_passphrase_command_handler, + ctx, NULL); + if (err) + return err; } - err = _gpgme_engine_op_encrypt_sign (ctx->engine, recp, plain, cipher, - ctx->use_armor, ctx /* FIXME */); + _gpgme_engine_set_status_handler (ctx->engine, + encrypt_sign_status_handler, ctx); - leave: - if (err) - { - _gpgme_engine_release (ctx->engine); - ctx->engine = NULL; - } - return err; + return _gpgme_engine_op_encrypt_sign (ctx->engine, recp, plain, cipher, + ctx->use_armor, ctx /* FIXME */); } GpgmeError |