X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keydctl.c;h=25d5f45964fc3b882a5590b60e4cb7e0229441d2;hb=372714d2cbb87182a374ab2a5ecc4833d107425b;hp=11e5e8f3ae4fdfe0aaba40a8f20afab618a31cc5;hpb=4c00c60025f3da30824b2df0fb5f25c0207245e3;p=onak.git diff --git a/keydctl.c b/keydctl.c index 11e5e8f..25d5f45 100644 --- a/keydctl.c +++ b/keydctl.c @@ -32,7 +32,7 @@ #include "version.h" /* HACK: We need to stop onak-conf.o requiring this. */ -void *DBFUNCS = NULL; +void *DBINIT = NULL; static int keyd_fd = -1; static int verbose = 0; @@ -99,7 +99,7 @@ static void keyd_connect(void) sock.sun_family = AF_UNIX; snprintf(sock.sun_path, sizeof(sock.sun_path) - 1, "%s/%s", - config.db_dir, + config.sock_dir, KEYD_SOCKET); if (connect(keyd_fd, (struct sockaddr *) &sock, sizeof(sock)) < 0) { if (verbose >= 0) { @@ -154,23 +154,35 @@ static void keyd_status(void) uint32_t reply; struct keyd_stats stats; - keyd_do_command(KEYD_CMD_VERSION, &reply, sizeof(reply)); + if (keyd_do_command(KEYD_CMD_VERSION, &reply, sizeof(reply)) == -1) { + printf("Got failure asking for keyd version.\n"); + return; + } printf("Using keyd protocol version %d.\n", reply); - keyd_do_command(KEYD_CMD_STATS, &stats, sizeof(stats)); + if (keyd_do_command(KEYD_CMD_STATS, &stats, sizeof(stats)) == -1) { + printf("Got failure asking for keyd statistics.\n"); + return; + } + printf("keyd running since %s", ctime(&stats.started)); printf("%d client connections received\n", stats.connects); printf("Command statistics:\n"); printf(" Version: %d\n", stats.command_stats[KEYD_CMD_VERSION]); - printf(" Get key: %d\n", stats.command_stats[KEYD_CMD_GET]); + printf(" Get key by ID: %d\n", + stats.command_stats[KEYD_CMD_GET_ID]); + printf(" Get key by FP: %d\n", + stats.command_stats[KEYD_CMD_GET_FP]); + printf(" Get key by hash: %d\n", + stats.command_stats[KEYD_CMD_GET_SKSHASH]); printf(" Store key: %d\n", stats.command_stats[KEYD_CMD_STORE]); printf(" Delete key: %d\n", stats.command_stats[KEYD_CMD_DELETE]); printf(" Search key: %d\n", - stats.command_stats[KEYD_CMD_GETTEXT]); + stats.command_stats[KEYD_CMD_GET_TEXT]); printf(" Get full keyid: %d\n", stats.command_stats[KEYD_CMD_GETFULLKEYID]); printf(" Iterate all keys: %d\n", @@ -220,6 +232,7 @@ int main(int argc, char *argv[]) configfile = NULL; if ((argc - optind) < 1) { + cleanupconfig(); usage(); } else if (!strcmp("check", argv[optind])) { /* Just do the connect and close quietly */ @@ -235,9 +248,11 @@ int main(int argc, char *argv[]) keyd_do_command(KEYD_CMD_QUIT, NULL, 0); keyd_close(); } else { + cleanupconfig(); usage(); } + cleanupconfig(); exit(EXIT_SUCCESS); }