* Jonathan McDowell <noodles@earth.li>
*
* Copyright 2002 Project Purple
+ *
+ * $Id: onak.c,v 1.14 2003/06/07 13:37:33 noodles Exp $
*/
#include <stdio.h>
#include "keyid.h"
#include "keyindex.h"
#include "keystructs.h"
+#include "log.h"
#include "mem.h"
#include "merge.h"
#include "onak-conf.h"
puts("\tadd - read armored OpenPGP keys from stdin and add to the"
" keyserver");
puts("\tdelete - delete a given key from the keyserver");
+ puts("\tdump - dump all the keys from the keyserver to a file or"
+ " files\n\t starting keydump*");
puts("\tget - retrieves the key requested from the keyserver");
puts("\tindex - search for a key and list it");
puts("\tvindex - search for a key and list it and its signatures");
break;
case 'v':
verbose = true;
+ setlogthreshold(LOGTHING_INFO);
break;
}
}
readconfig();
+ initlogthing("onak", config.logfile);
if ((argc - optind) < 1) {
usage();
if (binary) {
result = read_openpgp_stream(stdin_getchar, NULL,
&packets);
- if (verbose) {
- fprintf(stderr,
- "read_openpgp_stream: %d\n", result);
- }
+ logthing(LOGTHING_INFO,
+ "read_openpgp_stream: %d", result);
} else {
dearmor_openpgp_stream(stdin_getchar, NULL, &packets);
}
result = parse_keys(packets, &keys);
free_packet_list(packets);
packets = NULL;
- if (verbose) {
- fprintf(stderr, "Finished reading %d keys.\n",
+ logthing(LOGTHING_INFO, "Finished reading %d keys.",
result);
- }
initdb();
- fprintf(stderr, "Got %d new keys.\n",
- update_keys(&keys, verbose));
+ logthing(LOGTHING_NOTICE, "Got %d new keys.",
+ update_keys(&keys));
if (keys != NULL && update) {
flatten_publickey(keys,
&packets,
cleanupdb();
} else {
rc = 1;
- fprintf(stderr, "No keys read.\n");
+ logthing(LOGTHING_NOTICE, "No keys read.");
}
if (keys != NULL) {
keys = NULL;
} else {
rc = 1;
- fprintf(stderr, "No changes.\n");
+ logthing(LOGTHING_NOTICE, "No changes.");
}
} else if ((argc - optind) == 2) {
search = argv[optind+1];
} else if (!strcmp("delete", argv[optind])) {
delete_key(getfullkeyid(keyid), false);
} else if (!strcmp("get", argv[optind])) {
- if (fetch_key(keyid, &keys, false)) {
- if (verbose) {
- fprintf(stderr, "Got key.\n");
- }
+ if (!ishex) {
+ puts("Can't get a key on uid text."
+ " You must supply a keyid.");
+ } else if (fetch_key(keyid, &keys, false)) {
+ logthing(LOGTHING_INFO, "Got key.");
flatten_publickey(keys,
&packets,
&list_end);
+ free_publickey(keys);
armor_openpgp_stream(stdout_putchar,
NULL,
packets);
usage();
}
+ cleanuplogthing();
cleanupconfig();
return rc;