diff options
Diffstat (limited to 'src/engine.c')
-rw-r--r-- | src/engine.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/engine.c b/src/engine.c index b1d815ac..69128592 100644 --- a/src/engine.c +++ b/src/engine.c @@ -58,7 +58,7 @@ static struct engine_ops *engine_ops[] = #ifdef ENABLE_ASSUAN &_gpgme_engine_ops_assuan, /* Low-Level Assuan. */ #else - NULL + NULL, #endif #ifdef ENABLE_G13 &_gpgme_engine_ops_g13 /* Crypto VFS. */ @@ -777,8 +777,6 @@ _gpgme_engine_op_getauditlog (engine_t engine, gpgme_data_t output, gpgme_error_t _gpgme_engine_op_assuan_transact (engine_t engine, const char *command, - engine_assuan_result_cb_t result_cb, - void *result_cb_value, gpgme_assuan_data_cb_t data_cb, void *data_cb_value, gpgme_assuan_inquire_cb_t inq_cb, @@ -794,7 +792,6 @@ _gpgme_engine_op_assuan_transact (engine_t engine, return (*engine->ops->opassuan_transact) (engine->engine, command, - result_cb, result_cb_value, data_cb, data_cb_value, inq_cb, inq_cb_value, status_cb, status_cb_value); @@ -848,6 +845,7 @@ _gpgme_engine_io_event (engine_t engine, } +/* Cancel the session and the pending operation if any. */ gpgme_error_t _gpgme_engine_cancel (engine_t engine) { @@ -859,3 +857,17 @@ _gpgme_engine_cancel (engine_t engine) return (*engine->ops->cancel) (engine->engine); } + + +/* Cancel the pending operation, but not the complete session. */ +gpgme_error_t +_gpgme_engine_cancel_op (engine_t engine) +{ + if (!engine) + return gpg_error (GPG_ERR_INV_VALUE); + + if (!engine->ops->cancel_op) + return 0; + + return (*engine->ops->cancel_op) (engine->engine); +} |