X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/a4243347741f0f7079858e03bca8fc32990f525c..cca956b199841d754e8a78391d2e2c7efce4a3ee:/lib/trackdb.c diff --git a/lib/trackdb.c b/lib/trackdb.c index 9125c0c..4009358 100644 --- a/lib/trackdb.c +++ b/lib/trackdb.c @@ -23,15 +23,11 @@ * This file is getting in desparate need of splitting up... */ -#include -#include "types.h" +#include "common.h" -#include -#include #include #include #include -#include #include #include #include @@ -39,7 +35,6 @@ #include #include #include -#include #include #include #include @@ -145,6 +140,17 @@ DB *trackdb_globaldb; /* global preferences */ */ DB *trackdb_noticeddb; /* when track noticed */ +/** @brief The schedule database + * + * - Keys are ID strings, generated at random + * - Values are encoded key-value pairs + * - There can be more than one value per key + * - Data cannot be reconstructed + * + * See @ref server/schedule.c for further information. + */ +DB *trackdb_scheduledb; + /** @brief The user database * - Keys are usernames * - Values are encoded key-value pairs @@ -460,6 +466,7 @@ void trackdb_open(int flags) { trackdb_globaldb = open_db("global.db", 0, DB_HASH, dbflags, 0666); trackdb_noticeddb = open_db("noticed.db", DB_DUPSORT, DB_BTREE, dbflags, 0666); + trackdb_scheduledb = open_db("schedule.db", 0, DB_HASH, dbflags, 0666); if(!trackdb_existing_database) { /* Stash the database version */ char buf[32]; @@ -490,6 +497,8 @@ void trackdb_close(void) { fatal(0, "error closing global.db: %s", db_strerror(err)); if((err = trackdb_noticeddb->close(trackdb_noticeddb, 0))) fatal(0, "error closing noticed.db: %s", db_strerror(err)); + if((err = trackdb_scheduledb->close(trackdb_scheduledb, 0))) + fatal(0, "error closing schedule.db: %s", db_strerror(err)); if((err = trackdb_usersdb->close(trackdb_usersdb, 0))) fatal(0, "error closing users.db: %s", db_strerror(err)); trackdb_tracksdb = trackdb_searchdb = trackdb_prefsdb = 0; @@ -2195,7 +2204,7 @@ static int reap_rescan(ev_source attribute((unused)) *ev, eventlog("rescanned", (char *)0); /* Call rescanned callbacks */ while(rescanned_list) { - void (*rescanned)(void *u) = rescanned_list->rescanned; + void (*rescanned)(void *u_) = rescanned_list->rescanned; void *ru = rescanned_list->ru; rescanned_list = rescanned_list->next;