diff options
Diffstat (limited to '')
-rw-r--r-- | agent/query.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/agent/query.c b/agent/query.c index a20e4fe7b..4a051965d 100644 --- a/agent/query.c +++ b/agent/query.c @@ -33,7 +33,7 @@ #include "agent.h" #include "i18n.h" -#include "../assuan/assuan.h" +#include <assuan.h> #ifdef _POSIX_OPEN_MAX #define MAX_OPEN_FDS _POSIX_OPEN_MAX @@ -70,7 +70,7 @@ unlock_pinentry (int rc) { log_error ("failed to release the entry lock\n"); if (!rc) - rc = GNUPG_Internal_Error; + rc = gpg_error (GPG_ERR_INTERNAL); } #endif entry_ctx = NULL; @@ -96,7 +96,7 @@ start_pinentry (CTRL ctrl) if (!pth_mutex_acquire (&entry_lock, 0, NULL)) { log_error ("failed to acquire the entry lock\n"); - return GNUPG_Internal_Error; + return gpg_error (GPG_ERR_INTERNAL); } #endif @@ -108,8 +108,9 @@ start_pinentry (CTRL ctrl) if (fflush (NULL)) { + gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno)); log_error ("error flushing pending output: %s\n", strerror (errno)); - return unlock_pinentry (seterr (Write_Error)); + return unlock_pinentry (tmperr); } if (!opt.pinentry_program || !*opt.pinentry_program) @@ -145,7 +146,7 @@ start_pinentry (CTRL ctrl) { log_error ("can't connect to the PIN entry module: %s\n", assuan_strerror (rc)); - return unlock_pinentry (seterr (No_PIN_Entry)); + return unlock_pinentry (gpg_error (GPG_ERR_NO_PIN_ENTRY)); } entry_ctx = ctx; @@ -161,7 +162,7 @@ start_pinentry (CTRL ctrl) { char *optstr; if (asprintf (&optstr, "OPTION ttyname=%s", ctrl->ttyname) < 0 ) - return unlock_pinentry (GNUPG_Out_Of_Core); + return unlock_pinentry (out_of_core ()); rc = assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL); free (optstr); @@ -172,7 +173,7 @@ start_pinentry (CTRL ctrl) { char *optstr; if (asprintf (&optstr, "OPTION ttytype=%s", ctrl->ttytype) < 0 ) - return unlock_pinentry (GNUPG_Out_Of_Core); + return unlock_pinentry (out_of_core ()); rc = assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL); if (rc) @@ -182,7 +183,7 @@ start_pinentry (CTRL ctrl) { char *optstr; if (asprintf (&optstr, "OPTION lc-ctype=%s", ctrl->lc_ctype) < 0 ) - return unlock_pinentry (GNUPG_Out_Of_Core); + return unlock_pinentry (out_of_core ()); rc = assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL); if (rc) @@ -192,7 +193,7 @@ start_pinentry (CTRL ctrl) { char *optstr; if (asprintf (&optstr, "OPTION lc-messages=%s", ctrl->lc_messages) < 0 ) - return unlock_pinentry (GNUPG_Out_Of_Core); + return unlock_pinentry (out_of_core ()); rc = assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL); if (rc) @@ -250,7 +251,7 @@ agent_askpin (CTRL ctrl, return 0; /* fixme: we should return BAD PIN */ if (!pininfo || pininfo->max_length < 1) - return seterr (Invalid_Value); + return gpg_error (GPG_ERR_INV_VALUE); if (!desc_text && pininfo->min_digits) desc_text = _("Please enter your PIN, so that the secret key " "can be unlocked for this session"); @@ -322,7 +323,8 @@ agent_askpin (CTRL ctrl, rc = pininfo->check_cb (pininfo); if (rc == -1 && pininfo->cb_errtext) errtext = pininfo->cb_errtext; - else if (rc == GNUPG_Bad_Passphrase || rc == GNUPG_Bad_PIN) + else if (gpg_err_code (rc) == GPG_ERR_BAD_PASSPHRASE + || gpg_err_code (rc) == GPG_ERR_BAD_PIN) errtext = (is_pin? _("Bad PIN") : _("Bad Passphrase")); else if (rc) @@ -333,8 +335,8 @@ agent_askpin (CTRL ctrl, return unlock_pinentry (0); /* okay, got a PIN or passphrase */ } - return unlock_pinentry (pininfo->min_digits? GNUPG_Bad_PIN - : GNUPG_Bad_Passphrase); + return unlock_pinentry (gpg_error (pininfo->min_digits? GPG_ERR_BAD_PIN + : GPG_ERR_BAD_PASSPHRASE)); } @@ -356,7 +358,7 @@ agent_get_passphrase (CTRL ctrl, *retpass = NULL; if (opt.batch) - return GNUPG_Bad_Passphrase; + return gpg_error (GPG_ERR_BAD_PASSPHRASE); rc = start_pinentry (ctrl); if (rc) @@ -394,7 +396,7 @@ agent_get_passphrase (CTRL ctrl, parm.size = ASSUAN_LINELENGTH/2 - 5; parm.buffer = gcry_malloc_secure (parm.size+10); if (!parm.buffer) - return unlock_pinentry (seterr (Out_Of_Core)); + return unlock_pinentry (out_of_core ()); assuan_begin_confidential (entry_ctx); rc = assuan_transact (entry_ctx, "GETPIN", getpin_cb, &parm, NULL, NULL, NULL, NULL); @@ -407,8 +409,9 @@ agent_get_passphrase (CTRL ctrl, hexstring = gcry_malloc_secure (strlen (parm.buffer)*2+1); if (!hexstring) { + gpg_error_t tmperr = out_of_core (); xfree (parm.buffer); - return unlock_pinentry (seterr (Out_Of_Core)); + return unlock_pinentry (tmperr); } for (i=0, p=parm.buffer; *p; p++, i += 2) @@ -423,7 +426,7 @@ agent_get_passphrase (CTRL ctrl, /* Pop up the PIN-entry, display the text and the prompt and ask the user to confirm this. We return 0 for success, ie. the used - confirmed it, GNUPG_Not_Confirmed for what the text says or an + confirmed it, GPG_ERR_NOT_CONFIRMED for what the text says or an other error. */ int agent_get_confirmation (CTRL ctrl, |