diff options
Diffstat (limited to 'trunk/gpgme/engine.c')
-rw-r--r-- | trunk/gpgme/engine.c | 81 |
1 files changed, 42 insertions, 39 deletions
diff --git a/trunk/gpgme/engine.c b/trunk/gpgme/engine.c index 347c3025..afb831d4 100644 --- a/trunk/gpgme/engine.c +++ b/trunk/gpgme/engine.c @@ -23,6 +23,7 @@ #endif #include <stdlib.h> #include <string.h> +#include <errno.h> #include "gpgme.h" #include "util.h" @@ -99,7 +100,7 @@ gpgme_engine_check_version (gpgme_protocol_t proto) { return _gpgme_compare_versions (engine_get_version (proto), engine_get_req_version (proto)) - ? 0 : GPGME_Invalid_Engine; + ? 0 : gpg_error (GPG_ERR_INV_ENGINE); } @@ -117,7 +118,7 @@ gpgme_get_engine_info (gpgme_engine_info_t *info) { gpgme_engine_info_t *lastp = &engine_info; gpgme_protocol_t proto_list[] = { GPGME_PROTOCOL_OpenPGP, - GPGME_PROTOCOL_CMS }; + GPGME_PROTOCOL_CMS }; int proto; for (proto = 0; proto < DIM (proto_list); proto++) @@ -130,6 +131,8 @@ gpgme_get_engine_info (gpgme_engine_info_t *info) *lastp = malloc (sizeof (*engine_info)); if (!*lastp) { + int saved_errno = errno; + while (engine_info) { gpgme_engine_info_t next_info = engine_info->next; @@ -137,7 +140,7 @@ gpgme_get_engine_info (gpgme_engine_info_t *info) engine_info = next_info; } UNLOCK (engine_info_lock); - return GPGME_Out_Of_Core; + return gpg_error_from_errno (saved_errno); } (*lastp)->protocol = proto_list[proto]; @@ -162,19 +165,19 @@ _gpgme_engine_new (gpgme_protocol_t proto, engine_t *r_engine) const char *version; if (proto > DIM (engine_ops)) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine_ops[proto]) - return GPGME_Invalid_Engine; + return gpg_error (GPG_ERR_INV_ENGINE); file_name = engine_get_file_name (proto); version = engine_get_version (proto); if (!file_name || !version) - return GPGME_Invalid_Engine; + return gpg_error (GPG_ERR_INV_ENGINE); engine = calloc (1, sizeof *engine); if (!engine) - return GPGME_Out_Of_Core; + return gpg_error_from_errno (errno); engine->ops = engine_ops[proto]; if (engine_ops[proto]->new) @@ -225,10 +228,10 @@ _gpgme_engine_set_command_handler (engine_t engine, gpgme_data_t linked_data) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->set_command_handler) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->set_command_handler) (engine->engine, fnc, fnc_value, linked_data); @@ -240,10 +243,10 @@ _gpgme_engine_set_colon_line_handler (engine_t engine, void *fnc_value) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->set_colon_line_handler) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->set_colon_line_handler) (engine->engine, fnc, fnc_value); @@ -254,10 +257,10 @@ _gpgme_engine_op_decrypt (engine_t engine, gpgme_data_t ciph, gpgme_data_t plain) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->decrypt) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->decrypt) (engine->engine, ciph, plain); } @@ -267,10 +270,10 @@ _gpgme_engine_op_delete (engine_t engine, gpgme_key_t key, int allow_secret) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->delete) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->delete) (engine->engine, key, allow_secret); } @@ -281,10 +284,10 @@ _gpgme_engine_op_edit (engine_t engine, gpgme_key_t key, gpgme_data_t out, gpgme_ctx_t ctx /* FIXME */) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->edit) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->edit) (engine->engine, key, out, ctx); } @@ -296,10 +299,10 @@ _gpgme_engine_op_encrypt (engine_t engine, gpgme_key_t recp[], gpgme_data_t plain, gpgme_data_t ciph, int use_armor) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->encrypt) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->encrypt) (engine->engine, recp, flags, plain, ciph, use_armor); @@ -313,10 +316,10 @@ _gpgme_engine_op_encrypt_sign (engine_t engine, gpgme_key_t recp[], int use_armor, gpgme_ctx_t ctx /* FIXME */) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->encrypt_sign) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->encrypt_sign) (engine->engine, recp, flags, plain, ciph, use_armor, ctx); @@ -329,10 +332,10 @@ _gpgme_engine_op_export (engine_t engine, const char *pattern, int use_armor) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->export) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->export) (engine->engine, pattern, reserved, keydata, use_armor); @@ -345,10 +348,10 @@ _gpgme_engine_op_export_ext (engine_t engine, const char *pattern[], int use_armor) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->export_ext) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->export_ext) (engine->engine, pattern, reserved, keydata, use_armor); @@ -361,10 +364,10 @@ _gpgme_engine_op_genkey (engine_t engine, gpgme_data_t help_data, gpgme_data_t seckey) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->genkey) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->genkey) (engine->engine, help_data, use_armor, pubkey, seckey); @@ -375,10 +378,10 @@ gpgme_error_t _gpgme_engine_op_import (engine_t engine, gpgme_data_t keydata) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->import) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->import) (engine->engine, keydata); } @@ -389,10 +392,10 @@ _gpgme_engine_op_keylist (engine_t engine, const char *pattern, int secret_only, gpgme_keylist_mode_t mode) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->keylist) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->keylist) (engine->engine, pattern, secret_only, mode); } @@ -404,10 +407,10 @@ _gpgme_engine_op_keylist_ext (engine_t engine, const char *pattern[], gpgme_keylist_mode_t mode) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->keylist_ext) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->keylist_ext) (engine->engine, pattern, secret_only, reserved, mode); @@ -421,10 +424,10 @@ _gpgme_engine_op_sign (engine_t engine, gpgme_data_t in, gpgme_data_t out, gpgme_ctx_t ctx /* FIXME */) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->sign) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->sign) (engine->engine, in, out, mode, use_armor, use_textmode, include_certs, ctx); @@ -435,10 +438,10 @@ gpgme_error_t _gpgme_engine_op_trustlist (engine_t engine, const char *pattern) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->trustlist) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->trustlist) (engine->engine, pattern); } @@ -449,10 +452,10 @@ _gpgme_engine_op_verify (engine_t engine, gpgme_data_t sig, gpgme_data_t signed_text, gpgme_data_t plaintext) { if (!engine) - return GPGME_Invalid_Value; + return gpg_error (GPG_ERR_INV_VALUE); if (!engine->ops->verify) - return GPGME_Not_Implemented; + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->verify) (engine->engine, sig, signed_text, plaintext); } |