FIX: gpgme_key_release was not dynamically loaded

FIX: missing DYNAMIC_API on declaration of update_identity()
doc_update_sequoia
Volker Birk 6 years ago
parent 1e9c4cf299
commit 989ded57ec

@ -22,7 +22,7 @@ extern "C" {
// writing
// this function NEVER reads the incoming fpr, only writes to it.
PEP_STATUS update_identity(
DYNAMIC_API PEP_STATUS update_identity(
PEP_SESSION session, pEp_identity * identity
);

@ -325,6 +325,10 @@ PEP_STATUS pgp_init(PEP_SESSION session, bool in_first)
dlsym(gpgme, "gpgme_key_unref");
assert(gpg.gpgme_key_unref);
gpg.gpgme_key_release = (gpgme_key_release_t)(intptr_t)
dlsym(gpgme, "gpgme_key_release");
assert(gpg.gpgme_key_release);
gpg.gpgme_op_edit = (gpgme_op_edit_t) (intptr_t)
dlsym(gpgme, "gpgme_op_edit");
assert(gpg.gpgme_op_edit);
@ -2148,7 +2152,7 @@ PEP_STATUS pgp_contains_priv_key(PEP_SESSION session, const char *fpr,
break;
case GPG_ERR_NO_ERROR:
*has_private = true;
gpgme_key_release(output_key);
gpg.gpgme_key_release(output_key);
break;
case GPG_ERR_ENOMEM:
status = PEP_OUT_OF_MEMORY;

@ -70,6 +70,7 @@ typedef gpgme_error_t(*gpgme_op_import_keys_t)(gpgme_ctx_t CTX,
gpgme_key_t *KEYS);
typedef void(*gpgme_key_ref_t)(gpgme_key_t KEY);
typedef void(*gpgme_key_unref_t)(gpgme_key_t KEY);
typedef void(*gpgme_key_release_t)(gpgme_key_t KEY);
typedef gpgme_error_t (*gpgme_op_edit_t)(gpgme_ctx_t CTX, gpgme_key_t KEY,
gpgme_edit_cb_t FNC, void *HANDLE, gpgme_data_t OUT);
typedef gpgme_ssize_t (*gpgme_io_write_t)(int fd, const void *buffer,
@ -117,6 +118,7 @@ struct gpg_s {
gpgme_op_import_keys_t gpgme_op_import_keys;
gpgme_key_ref_t gpgme_key_ref;
gpgme_key_unref_t gpgme_key_unref;
gpgme_key_release_t gpgme_key_release;
gpgme_op_edit_t gpgme_op_edit;
gpgme_io_write_t gpgme_io_write;
};

Loading…
Cancel
Save