X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/0f4971d043c38bae1bfb95201622a1405110f899..HEAD:/sixdegrees.c diff --git a/sixdegrees.c b/sixdegrees.c index 9b13cfb..738f626 100644 --- a/sixdegrees.c +++ b/sixdegrees.c @@ -1,20 +1,32 @@ /* * sixdegrees.c - List the size of the six degrees of trust away from a key. - * - * Jonathan McDowell * - * Copyright 2001-2002 Project Purple. + * Copyright 2001-2002 Jonathan McDowell * - * $Id: sixdegrees.c,v 1.4 2003/06/04 20:57:12 noodles Exp $ + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * 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. */ +#include #include #include +#include #include "hash.h" #include "keydb.h" #include "keystructs.h" #include "ll.h" +#include "log.h" #include "onak-conf.h" #include "stats.h" @@ -31,7 +43,8 @@ unsigned long countdegree(struct stats_key *have, bool sigs, int maxdegree) while (curll != NULL && curdegree <= maxdegree) { if (sigs) { - sigll = cached_getkeysigs(((struct stats_key *) + sigll = config.dbbackend->cached_getkeysigs( + ((struct stats_key *) curll->object)->keyid); } else { sigll = NULL; @@ -83,15 +96,16 @@ void sixdegrees(uint64_t keyid) long degree; char *uid; - cached_getkeysigs(keyid); + config.dbbackend->cached_getkeysigs(keyid); if ((keyinfo = findinhash(keyid)) == NULL) { - printf("Couldn't find key 0x%llX.\n", keyid); + printf("Couldn't find key 0x%016" PRIX64 ".\n", keyid); return; } - uid = keyid2uid(keyinfo->keyid); - printf("Six degrees for 0x%llX (%s):\n", keyinfo->keyid, uid); + uid = config.dbbackend->keyid2uid(keyinfo->keyid); + printf("Six degrees for 0x%016" PRIX64 " (%s):\n", keyinfo->keyid, + uid); free(uid); uid = NULL; @@ -120,18 +134,30 @@ void sixdegrees(uint64_t keyid) int main(int argc, char *argv[]) { - uint64_t keyid = 0x5B430367; + int optchar; + char *configfile = NULL; + uint64_t keyid = 0x2DA8B985; + + while ((optchar = getopt(argc, argv, "c:")) != -1 ) { + switch (optchar) { + case 'c': + configfile = strdup(optarg); + break; + } + } - if (argc == 2) { - keyid = strtoll(argv[1], NULL, 16); + if (optind < argc) { + keyid = strtoll(argv[optind], NULL, 16); } - readconfig(); - initdb(); + readconfig(configfile); + initlogthing("sixdegrees", config.logfile); + config.dbbackend->initdb(true); inithash(); - sixdegrees(getfullkeyid(keyid)); + sixdegrees(config.dbbackend->getfullkeyid(keyid)); destroyhash(); - cleanupdb(); + config.dbbackend->cleanupdb(); + cleanuplogthing(); cleanupconfig(); return 0;