projects
/
onak.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cscvs to tla changeset 48
[onak.git]
/
onak.c
diff --git
a/onak.c
b/onak.c
index 87b65e806ade99f0bc3cfb94dedfad709333070e..90c6926c95d7fb1db15ad18cbaff91d4aad4f808 100644
(file)
--- a/
onak.c
+++ b/
onak.c
@@
-74,7
+74,8
@@
void usage(void) {
puts("Usage:\n");
puts("\tonak [options] <command> <parameters>\n");
puts("\tCommands:\n");
puts("Usage:\n");
puts("\tonak [options] <command> <parameters>\n");
puts("\tCommands:\n");
- puts("\tadd - read armored OpenPGP keys from stdin and add to the keyserver");
+ puts("\tadd - read armored OpenPGP keys from stdin and add to the"
+ " keyserver");
puts("\tdelete - delete a given key from the keyserver");
puts("\tget - retrieves the key requested from the keyserver");
puts("\tindex - search for a key and list it");
puts("\tdelete - delete a given key from the keyserver");
puts("\tget - retrieves the key requested from the keyserver");
puts("\tindex - search for a key and list it");
@@
-87,45
+88,67
@@
int main(int argc, char *argv[])
struct openpgp_packet_list *list_end = NULL;
struct openpgp_publickey *keys = NULL;
int rc = EXIT_SUCCESS;
struct openpgp_packet_list *list_end = NULL;
struct openpgp_publickey *keys = NULL;
int rc = EXIT_SUCCESS;
+ int result = 0;
char *search = NULL;
char *end = NULL;
uint64_t keyid = 0;
bool ishex = false;
bool verbose = false;
char *search = NULL;
char *end = NULL;
uint64_t keyid = 0;
bool ishex = false;
bool verbose = false;
+ bool update = false;
bool binary = false;
int optchar;
bool binary = false;
int optchar;
-
- while ((optchar = getopt(argc, argv, "bv")) != -1 ) {
+ while ((optchar = getopt(argc, argv, "buv")) != -1 ) {
switch (optchar) {
case 'b':
binary = true;
break;
switch (optchar) {
case 'b':
binary = true;
break;
+ case 'u':
+ update = true;
+ break;
case 'v':
verbose = true;
break;
}
}
case 'v':
verbose = true;
break;
}
}
+ readconfig();
+
if ((argc - optind) < 1) {
usage();
} else if (!strcmp("add", argv[optind])) {
if (binary) {
if ((argc - optind) < 1) {
usage();
} else if (!strcmp("add", argv[optind])) {
if (binary) {
- read_openpgp_stream(stdin_getchar, NULL, &packets);
+ result = read_openpgp_stream(stdin_getchar, NULL,
+ &packets);
+ if (verbose) {
+ fprintf(stderr,
+ "read_openpgp_stream: %d\n", result);
+ }
} else {
dearmor_openpgp_stream(stdin_getchar, NULL, &packets);
}
if (packets != NULL) {
} else {
dearmor_openpgp_stream(stdin_getchar, NULL, &packets);
}
if (packets != NULL) {
- parse_keys(packets, &keys);
+
result =
parse_keys(packets, &keys);
free_packet_list(packets);
packets = NULL;
if (verbose) {
free_packet_list(packets);
packets = NULL;
if (verbose) {
- fprintf(stderr, "Finished reading keys.\n");
+ fprintf(stderr, "Finished reading %d keys.\n",
+ result);
}
}
-
+
initdb();
fprintf(stderr, "Got %d new keys.\n",
update_keys(&keys, verbose));
initdb();
fprintf(stderr, "Got %d new keys.\n",
update_keys(&keys, verbose));
+ if (keys != NULL && update) {
+ flatten_publickey(keys,
+ &packets,
+ &list_end);
+ armor_openpgp_stream(stdout_putchar,
+ NULL,
+ packets);
+ free_packet_list(packets);
+ packets = NULL;
+ }
cleanupdb();
} else {
rc = 1;
cleanupdb();
} else {
rc = 1;
@@
-167,6
+190,8
@@
int main(int argc, char *argv[])
armor_openpgp_stream(stdout_putchar,
NULL,
packets);
armor_openpgp_stream(stdout_putchar,
NULL,
packets);
+ free_packet_list(packets);
+ packets = NULL;
} else {
puts("Key not found");
}
} else {
puts("Key not found");
}
@@
-176,5
+201,7
@@
int main(int argc, char *argv[])
usage();
}
usage();
}
+ cleanupconfig();
+
return rc;
}
return rc;
}