X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keydb_dynamic.c;h=52a4af9bec00e062cb5c157a07bf728dc6df78b9;hb=f063495a9a479e094216875001e3e006344eebcd;hp=25a359aa9ecb548b2d25159c6ac474a5c623c543;hpb=1ec1e2efdf4092233ac2136dff5a35cf6c7f4710;p=onak.git
diff --git a/keydb_dynamic.c b/keydb_dynamic.c
index 25a359a..52a4af9 100644
--- a/keydb_dynamic.c
+++ b/keydb_dynamic.c
@@ -13,8 +13,7 @@
* more details.
*
* You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * this program. If not, see .
*/
#include
@@ -109,14 +108,15 @@ 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,
@@ -159,15 +159,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)
@@ -292,11 +283,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;
@@ -311,7 +311,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;
}