From f66f856c89b7c02e368afe2343de7cce50e6109e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= Date: Fri, 14 Aug 2020 11:11:23 +0200 Subject: core: Add error handling to setexpire * src/genkey.c (setexpire, gpgme_op_setexpire_start, gpgme_op_setexpire): Move to ... * src/setexpire.c: New. * src/Makefile.am (main_sources): Add that file. * src/context.h (ctx_op_data_id_t): Add OPDATA_SETEXPIRE. * lang/qt/tests/t-various.cpp (testSetExpire): Test error handling. -- Errors (and failures) emitted via status-fd need to be handled explicitly, i.e. we need to provide an appropriate status handler with corresponding op_data_t. Additionally, we need to set a passphrase command handler if a passphrase callback is set in the context, e.g. during tests. GnuPG-bug-id: 4395 --- src/genkey.c | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) (limited to 'src/genkey.c') diff --git a/src/genkey.c b/src/genkey.c index 981a0093..77576b18 100644 --- a/src/genkey.c +++ b/src/genkey.c @@ -663,55 +663,3 @@ gpgme_op_set_uid_flag (gpgme_ctx_t ctx, { return set_uid_flag (ctx, 1, key, userid, name, value); } - -/* Set the expiration time of a key or its subkeys. See - --quick-set-expire in the gnupg documentation. */ -static gpg_error_t -setexpire (gpgme_ctx_t ctx, int synchronous, - gpgme_key_t key, - unsigned long expires, - const char *subfprs, - unsigned int reserved) -{ - gpgme_error_t err = 0; - - TRACE_BEG (DEBUG_CTX, "gpgme_op_setexpire", ctx, - "%d key=%p expiry: %lu subkeys: '%s' reserved=0x%x", - synchronous, key, expires, subfprs, reserved); - - if (!ctx || !key) - return TRACE_ERR (gpg_error (GPG_ERR_INV_ARG)); - - err = _gpgme_op_reset (ctx, synchronous); - if (err) - return err; - - err = _gpgme_engine_op_setexpire (ctx->engine, key, expires, subfprs, reserved); - - if (synchronous && !err) - err = _gpgme_wait_one (ctx); - return TRACE_ERR (err); -} - -/* See setexpire. */ -gpgme_error_t -gpgme_op_setexpire_start (gpgme_ctx_t ctx, - gpgme_key_t key, - unsigned long expires, - const char *subfprs, - unsigned int reserved) -{ - return setexpire (ctx, 0, key, expires, subfprs, reserved); -} - - -/* See setexpire. This is the synchronous variant. */ -gpgme_error_t -gpgme_op_setexpire (gpgme_ctx_t ctx, - gpgme_key_t key, - unsigned long expires, - const char *subfprs, - unsigned int reserved) -{ - return setexpire (ctx, 1, key, expires, subfprs, reserved); -} -- cgit v1.2.3