X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=keydb_db3.c;h=b3441b7edaa21db571f594f9a010de58b50ffca9;hb=7f046503b8b8dcec51c1f7752e87ba0ba0af0631;hp=56f4bed5a0cc11d60759c5a4ae8837df2bec04fe;hpb=ae384229c538b20b429ea640ec30071ae944c0e7;p=onak.git diff --git a/keydb_db3.c b/keydb_db3.c index 56f4bed..b3441b7 100644 --- a/keydb_db3.c +++ b/keydb_db3.c @@ -5,7 +5,7 @@ * * Copyright 2002 Project Purple * - * $Id: keydb_db3.c,v 1.20 2003/09/30 20:40:10 noodles Exp $ + * $Id: keydb_db3.c,v 1.22 2003/10/10 16:57:27 noodles Exp $ */ #include @@ -58,7 +58,11 @@ static DB_TXN *txn = NULL; DB *keydb(uint64_t keyid) { - return(dbconns[keyid % numdbs]); + uint64_t keytrun; + + keytrun = keyid >> 8; + + return(dbconns[keytrun % numdbs]); } /** @@ -135,6 +139,15 @@ void initdb(void) } else { logthing(LOGTHING_ERROR, "Couldn't open num_keydb: %s", strerror(errno)); + numdb = fopen(buf, "w"); + if (numdb != NULL) { + fprintf(numdb, "%d", numdbs); + fclose(numdb); + } else { + logthing(LOGTHING_ERROR, + "Couldn't write num_keydb: %s", + strerror(errno)); + } } dbconns = malloc(sizeof (DB *) * numdbs); @@ -170,7 +183,7 @@ void initdb(void) 0); if (ret != 0) { logthing(LOGTHING_CRITICAL, - "Erroring opening db environment: %s (%s)", + "Error opening db environment: %s (%s)", config.db_dir, db_strerror(ret)); exit(1);