From 88fd2a25ee8fdd9f2f8f36f3a705364800206867 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 15 Dec 2015 00:38:16 +0000 Subject: Show PGP error strings --- src/pgp/gpg.c | 14 +++++++++----- src/pgp/gpg.h | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src/pgp') diff --git a/src/pgp/gpg.c b/src/pgp/gpg.c index 7828c934..b40df96f 100644 --- a/src/pgp/gpg.c +++ b/src/pgp/gpg.c @@ -424,12 +424,13 @@ p_gpg_libver(void) } gboolean -p_gpg_valid_key(const char *const keyid) +p_gpg_valid_key(const char *const keyid, char **err_str) { gpgme_ctx_t ctx; gpgme_error_t error = gpgme_new(&ctx); if (error) { log_error("GPG: Failed to create gpgme context. %s %s", gpgme_strsource(error), gpgme_strerror(error)); + *err_str = strdup(gpgme_strerror(error)); return FALSE; } @@ -438,18 +439,21 @@ p_gpg_valid_key(const char *const keyid) if (error || key == NULL) { log_error("GPG: Failed to get key. %s %s", gpgme_strsource(error), gpgme_strerror(error)); + *err_str = strdup(gpgme_strerror(error)); gpgme_release(ctx); return FALSE; } - if (key) { + if (key == NULL) { + *err_str = strdup("Unknown error"); gpgme_release(ctx); - gpgme_key_unref(key); - return TRUE; + return FALSE; } gpgme_release(ctx); - return FALSE; + gpgme_key_unref(key); + return TRUE; + } gboolean diff --git a/src/pgp/gpg.h b/src/pgp/gpg.h index f699e889..5149343f 100644 --- a/src/pgp/gpg.h +++ b/src/pgp/gpg.h @@ -59,7 +59,7 @@ GHashTable* p_gpg_list_keys(void); void p_gpg_free_keys(GHashTable *keys); gboolean p_gpg_addkey(const char *const jid, const char *const keyid); GHashTable* p_gpg_pubkeys(void); -gboolean p_gpg_valid_key(const char *const keyid); +gboolean p_gpg_valid_key(const char *const keyid, char **err_str); gboolean p_gpg_available(const char *const barejid); const char* p_gpg_libver(void); char* p_gpg_sign(const char *const str, const char *const fp); -- cgit 1.4.1-2-gfad0