* Jonathan McDowell <noodles@earth.li>
*
* Copyright 2002 Project Purple
+ *
+ * $Id: keydb_db2.c,v 1.11 2004/03/23 12:33:46 noodles Exp $
*/
#include <sys/types.h>
#include "keyid.h"
#include "keyindex.h"
#include "keystructs.h"
+#include "log.h"
#include "mem.h"
#include "onak-conf.h"
#include "parsekey.h"
* 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;
int ret;
char keydbname[20];
+ char buf[1024];
+ FILE *numdb = NULL;
+
+ snprintf(buf, sizeof(buf) - 1, "%s/num_keydb", config.db_dir);
+ numdb = fopen(buf, "r");
+ if (numdb != NULL) {
+ if (fgets(buf, sizeof(buf), numdb) != NULL) {
+ db2_numdb = atoi(buf);
+ }
+ fclose(numdb);
+ } else {
+ logthing(LOGTHING_ERROR, "Couldn't open num_keydb: %s",
+ strerror(errno));
+ }
memset(&db2_env, 0, sizeof(db2_env));
&db2_env, &keydbinfo,
&db2_keydbfiles[i]);
if (ret) {
- fprintf(stderr, "Error opening db file %d (errno %d)\n",
+ logthing(LOGTHING_CRITICAL,
+ "Error opening db file %d (errno %d)",
i, ret);
exit(1);
}
}
} else {
- fprintf(stderr, "Error initializing db (%d).\n", ret);
+ logthing(LOGTHING_CRITICAL, "Error initializing db (%d).",
+ ret);
exit(1);
}
}
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;
}
return (!ret);
return (1);
}
+/**
+ * dumpdb - dump the key database
+ * @filenamebase: The base filename to use for the dump.
+ *
+ * Dumps the database into one or more files, which contain pure OpenPGP
+ * that can be reimported into onak or gpg. filenamebase provides a base
+ * file name for the dump; several files may be created, all of which will
+ * begin with this string and then have a unique number and a .pgp
+ * extension.
+ * */
+int dumpdb(char *filenamebase)
+{
+ return 0;
+}
+
+
/*
* Include the basic keydb routines.
*/