X-Git-Url: https://the.earth.li/gitweb/?p=onak.git;a=blobdiff_plain;f=maxpath.c;h=f088cc615274cc6eb24a55c73f7391c9f7feffef;hp=25264ced5855c0a21dcf45c6eae7782144d5dab4;hb=76f079e5ebdb34acaaa2462a8d915ee06d3c8425;hpb=f5be3640e7ca1e6978e199a0a767bda3f40def87 diff --git a/maxpath.c b/maxpath.c index 25264ce..f088cc6 100644 --- a/maxpath.c +++ b/maxpath.c @@ -13,16 +13,16 @@ * 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 +#include +#include #include #include #include -#include "stats.h" #include "hash.h" #include "keydb.h" #include "ll.h" @@ -30,7 +30,7 @@ #include "onak-conf.h" #include "stats.h" -void findmaxpath(unsigned long max) +void findmaxpath(struct onak_dbctx *dbctx, unsigned long max) { struct stats_key *from, *to, *tmp; struct ll *curkey; @@ -43,7 +43,7 @@ void findmaxpath(unsigned long max) * My (noodles@earth.li, RSA) key is in the strongly connected set of * keys, so we use it as a suitable starting seed. */ - config.dbbackend->cached_getkeysigs(0x94FA372B2DA8B985); + dbctx->cached_getkeysigs(dbctx, 0x94FA372B2DA8B985); /* * Loop through the hash examining each key present and finding the @@ -54,11 +54,11 @@ void findmaxpath(unsigned long max) for (loop = 0; (loop < HASHSIZE) && (distance < max); loop++) { curkey = gethashtableentry(loop); while (curkey != NULL && distance < max) { - config.dbbackend->cached_getkeysigs( + dbctx->cached_getkeysigs(dbctx, ((struct stats_key *) curkey->object)->keyid); initcolour(false); - tmp = furthestkey((struct stats_key *) + tmp = furthestkey(dbctx, (struct stats_key *) curkey->object); if (tmp->colour > distance) { from = (struct stats_key *)curkey->object; @@ -79,31 +79,40 @@ void findmaxpath(unsigned long max) from->keyid, to->keyid, distance); - dofindpath(to->keyid, from->keyid, false, 1); + dofindpath(dbctx, to->keyid, from->keyid, false, 1); } int main(int argc, char *argv[]) { int optchar; char *configfile = NULL; + struct onak_dbctx *dbctx; while ((optchar = getopt(argc, argv, "c:")) != -1 ) { switch (optchar) { case 'c': + if (configfile != NULL) { + free(configfile); + } configfile = strdup(optarg); break; } } readconfig(configfile); + free(configfile); initlogthing("maxpath", config.logfile); - config.dbbackend->initdb(true); - inithash(); - findmaxpath(30); - printf("--------\n"); - findmaxpath(30); - destroyhash(); - config.dbbackend->cleanupdb(); + dbctx = config.dbinit(config.backend, true); + if (dbctx != NULL) { + inithash(); + findmaxpath(dbctx, 30); + printf("--------\n"); + findmaxpath(dbctx, 30); + destroyhash(); + dbctx->cleanupdb(dbctx); + } else { + fprintf(stderr, "Couldn't initialize key database.\n"); + } cleanuplogthing(); cleanupconfig();