X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/fe84894a4052c71965c6a75b013db3dcec23d67d..a241edc87bed49d6bc5dc3c4c99786a921ae7c8a:/keydctl.c diff --git a/keydctl.c b/keydctl.c index 96af7d2..e46a355 100644 --- a/keydctl.c +++ b/keydctl.c @@ -2,12 +2,26 @@ * keydctl.c - A simple program to control a running keyd instance * * Copyright 2011 Jonathan McDowell + * + * 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 #include #include #include @@ -138,10 +152,37 @@ static void keyd_close(void) static void keyd_status(void) { uint32_t reply; + struct keyd_stats stats; keyd_do_command(KEYD_CMD_VERSION, &reply, sizeof(reply)); printf("Using keyd protocol version %d.\n", reply); + keyd_do_command(KEYD_CMD_STATS, &stats, sizeof(stats)); + 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(" 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]); + printf(" Get full keyid: %d\n", + stats.command_stats[KEYD_CMD_GETFULLKEYID]); + printf(" Iterate all keys: %d\n", + stats.command_stats[KEYD_CMD_KEYITER]); + printf(" Close: %d\n", + stats.command_stats[KEYD_CMD_CLOSE]); + printf(" Quit: %d\n", stats.command_stats[KEYD_CMD_QUIT]); + printf(" Get statistics: %d\n", + stats.command_stats[KEYD_CMD_STATS]); + printf(" Unknown: %d\n", + stats.command_stats[KEYD_CMD_UNKNOWN]); + return; }