]> the.earth.li Git - onak.git/blobdiff - keydb_db2.c
Cleanup db4 properly if we fail to open it.
[onak.git] / keydb_db2.c
index 0ff31cbe308d1f9a0c8137f83632822943530f79..f9ca04b5f4a3081151db6432009e744dd8ee9f4b 100644 (file)
@@ -3,9 +3,7 @@
  *
  * Jonathan McDowell <noodles@earth.li>
  *
- * Copyright 2002 Project Purple
- *
- * $Id: keydb_db2.c,v 1.9 2003/06/04 20:57:08 noodles Exp $
+ * Copyright 2002-2004 Project Purple
  */
 
 #include <sys/types.h>
@@ -65,7 +63,7 @@ DB *keydb(DBT *key)
  *     this file are called in order to allow the DB to be initialized ready
  *     for access.
  */
-void initdb(void)
+void initdb(bool readonly)
 {
        DB_INFO keydbinfo;
        int i;
@@ -200,7 +198,7 @@ int fetch_key(uint64_t keyid, struct openpgp_publickey **publickey,
                fetchbuf.buffer = data.data;
                fetchbuf.offset = 0;
                fetchbuf.size = data.size;
-               read_openpgp_stream(buffer_fetchchar, &fetchbuf, &packets);
+               read_openpgp_stream(buffer_fetchchar, &fetchbuf, &packets, 0);
                parse_keys(packets, publickey);
                free_packet_list(packets);
                packets = NULL;
@@ -266,6 +264,22 @@ int dumpdb(char *filenamebase)
        return 0;
 }
 
+/**
+ *     iterate_keys - call a function once for each key in the db.
+ *     @iterfunc: The function to call.
+ *     @ctx: A context pointer
+ *
+ *     Calls iterfunc once for each key in the database. ctx is passed
+ *     unaltered to iterfunc. This function is intended to aid database dumps
+ *     and statistic calculations.
+ *
+ *     Returns the number of keys we iterated over.
+ */
+int iterate_keys(void (*iterfunc)(void *ctx, struct openpgp_publickey *key),
+               void *ctx)
+{
+       return 0;
+}
 
 /*
  * Include the basic keydb routines.
@@ -273,4 +287,5 @@ int dumpdb(char *filenamebase)
 #define NEED_KEYID2UID 1
 #define NEED_GETKEYSIGS 1
 #define NEED_GETFULLKEYID 1
+#define NEED_UPDATEKEYS 1
 #include "keydb.c"