X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=keydb_dynamic.c;h=385c09cbb5ef3600e2b9e9a59a79b61d423f4c03;hb=dfab9e96ee1fa4a10acf9c1cf644d7a4366a5af6;hp=9e4e3bcb7585e27decf07aa2a8ca22905d0a0573;hpb=6df51fef2960f533a741fb7290867387ed3fbba5;p=onak.git diff --git a/keydb_dynamic.c b/keydb_dynamic.c index 9e4e3bc..385c09c 100644 --- a/keydb_dynamic.c +++ b/keydb_dynamic.c @@ -108,24 +108,28 @@ static int dynamic_store_key(struct onak_dbctx *dbctx, publickey, intrans, update); } -static int dynamic_delete_key(struct onak_dbctx *dbctx, uint64_t keyid, +static int dynamic_delete_key(struct onak_dbctx *dbctx, + struct openpgp_fingerprint *fp, bool intrans) { struct onak_dynamic_dbctx *privctx = (struct onak_dynamic_dbctx *) dbctx->priv; return privctx->loadeddbctx->delete_key(privctx->loadeddbctx, - keyid, intrans); + fp, intrans); } static int dynamic_update_keys(struct onak_dbctx *dbctx, - struct openpgp_publickey **keys, bool sendsync) + struct openpgp_publickey **keys, + struct keyarray *blacklist, + bool updateonly, + bool sendsync) { struct onak_dynamic_dbctx *privctx = (struct onak_dynamic_dbctx *) dbctx->priv; return privctx->loadeddbctx->update_keys(privctx->loadeddbctx, - keys, sendsync); + keys, blacklist, updateonly, sendsync); } static struct ll *dynamic_getkeysigs(struct onak_dbctx *dbctx, @@ -158,15 +162,6 @@ static char *dynamic_keyid2uid(struct onak_dbctx *dbctx, keyid); } -static uint64_t dynamic_getfullkeyid(struct onak_dbctx *dbctx, - uint64_t keyid) -{ - struct onak_dynamic_dbctx *privctx = - (struct onak_dynamic_dbctx *) dbctx->priv; - - return privctx->loadeddbctx->getfullkeyid(privctx->loadeddbctx, keyid); -} - static int dynamic_iterate_keys(struct onak_dbctx *dbctx, void (*iterfunc)(void *ctx, struct openpgp_publickey *key), void *ctx) @@ -291,11 +286,20 @@ struct onak_dbctx *keydb_dynamic_init(struct onak_db_config *dbcfg, soname = NULL; exit(EXIT_FAILURE); } - free(soname); - soname = NULL; privctx->loadeddbctx = backend_init(dbcfg, readonly); + if (privctx->loadeddbctx == NULL) { + logthing(LOGTHING_CRITICAL, + "Failed to initialise dynamic backend: %s", + soname); + free(soname); + soname = NULL; + exit(EXIT_FAILURE); + } + free(soname); + soname = NULL; + if (privctx->loadeddbctx != NULL) { dbctx->cleanupdb = dynamic_cleanupdb; dbctx->starttrans = dynamic_starttrans; @@ -310,7 +314,6 @@ struct onak_dbctx *keydb_dynamic_init(struct onak_db_config *dbcfg, dbctx->getkeysigs = dynamic_getkeysigs; dbctx->cached_getkeysigs = dynamic_cached_getkeysigs; dbctx->keyid2uid = dynamic_keyid2uid; - dbctx->getfullkeyid = dynamic_getfullkeyid; dbctx->iterate_keys = dynamic_iterate_keys; }