X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=onak.c;h=0fdb7e4bf7510456cd9498422b808cc4e773201b;hb=9a96aa6edb1d8033124fe81b945c7e76f37d6087;hp=b69c594f527445525c2113ea98411d914873ca8f;hpb=047b8ed75bbac19ef33690bd44746718a8261439;p=onak.git diff --git a/onak.c b/onak.c index b69c594..0fdb7e4 100644 --- a/onak.c +++ b/onak.c @@ -7,7 +7,7 @@ * * Copyright 2002 Project Purple * - * $Id: onak.c,v 1.16 2003/09/30 17:15:39 noodles Exp $ + * $Id: onak.c,v 1.19 2004/03/23 12:33:47 noodles Exp $ */ #include @@ -71,6 +71,7 @@ int main(int argc, char *argv[]) struct openpgp_packet_list *packets = NULL; struct openpgp_packet_list *list_end = NULL; struct openpgp_publickey *keys = NULL; + char *configfile = NULL; int rc = EXIT_SUCCESS; int result = 0; char *search = NULL; @@ -83,11 +84,14 @@ int main(int argc, char *argv[]) bool fingerprint = false; int optchar; - while ((optchar = getopt(argc, argv, "bfuv")) != -1 ) { + while ((optchar = getopt(argc, argv, "bc:fuv")) != -1 ) { switch (optchar) { case 'b': binary = true; break; + case 'c': + configfile = strdup(optarg); + break; case 'f': fingerprint = true; break; @@ -101,19 +105,19 @@ int main(int argc, char *argv[]) } } - readconfig(); + readconfig(configfile); initlogthing("onak", config.logfile); if ((argc - optind) < 1) { usage(); } else if (!strcmp("dump", argv[optind])) { - initdb(); + initdb(true); dumpdb("keydump"); cleanupdb(); } else if (!strcmp("add", argv[optind])) { if (binary) { result = read_openpgp_stream(stdin_getchar, NULL, - &packets); + &packets, 0); logthing(LOGTHING_INFO, "read_openpgp_stream: %d", result); } else { @@ -126,7 +130,7 @@ int main(int argc, char *argv[]) logthing(LOGTHING_INFO, "Finished reading %d keys.", result); - initdb(); + initdb(false); logthing(LOGTHING_NOTICE, "Got %d new keys.", update_keys(&keys)); if (keys != NULL && update) { @@ -162,7 +166,7 @@ int main(int argc, char *argv[]) ishex = true; } } - initdb(); + initdb(false); if (!strcmp("index", argv[optind])) { find_keys(search, keyid, ishex, fingerprint, false, false);