]> git.sommitrealweird.co.uk Git - onak.git/blobdiff - keyd.h
Switch debian build system to dh
[onak.git] / keyd.h
diff --git a/keyd.h b/keyd.h
index 7497cb49809d88023c173ff8e028a795a0acf0fa..91959c87258a616475bd065b081cf3fa599b0e70 100644 (file)
--- a/keyd.h
+++ b/keyd.h
@@ -1,16 +1,36 @@
-/*
- * keyd.h - Public API for keyd.
+/**
+ * @file keyd.h
+ * @brief Public API for keyd.
  *
  *
- * Jonathan McDowell <noodles@earth.li>
+ * Copyright 2004,2011 Jonathan McDowell <noodles@earth.li>
  *
  *
- * Copyright 2004 Project Purple
+ * 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.
  */
 
 #ifndef __KEYD_H__
 #define __KEYD_H__
 
  */
 
 #ifndef __KEYD_H__
 #define __KEYD_H__
 
+#include <stdint.h>
+
+/**
+ * @brief The name of the keyd Unix domain socket
+ */
 #define KEYD_SOCKET "keyd.sock"
 
 #define KEYD_SOCKET "keyd.sock"
 
+/**
+ * @brief keyd commands
+ */
 enum keyd_ops {
        KEYD_CMD_UNKNOWN = 0,
        KEYD_CMD_VERSION = 1,
 enum keyd_ops {
        KEYD_CMD_UNKNOWN = 0,
        KEYD_CMD_VERSION = 1,
@@ -19,15 +39,37 @@ enum keyd_ops {
        KEYD_CMD_DELETE,
        KEYD_CMD_GETTEXT,
        KEYD_CMD_GETFULLKEYID,
        KEYD_CMD_DELETE,
        KEYD_CMD_GETTEXT,
        KEYD_CMD_GETFULLKEYID,
+       KEYD_CMD_KEYITER,
        KEYD_CMD_CLOSE,
        KEYD_CMD_CLOSE,
-       KEYD_CMD_QUIT
+       KEYD_CMD_QUIT,
+       KEYD_CMD_STATS,
+       KEYD_CMD_GETSKSHASH,
+       KEYD_CMD_LAST                   /* Placeholder */
 };
 
 };
 
+/**
+ * @brief Reply codes for keyd commands
+ */
 enum keyd_reply {
        KEYD_REPLY_OK = 0,
        KEYD_REPLY_UNKNOWN_CMD = 1
 };
 
 enum keyd_reply {
        KEYD_REPLY_OK = 0,
        KEYD_REPLY_UNKNOWN_CMD = 1
 };
 
-static int keyd_version = 1;
+/**
+ * @brief Version of the keyd protocol currently supported
+ */
+static const uint32_t keyd_version = 3;
+
+/**
+ * @brief Response structure for the @a KEYD_CMD_STATS response
+ */
+struct keyd_stats {
+       /** Unix time of when the keyd daemon was started */
+       time_t started;
+       /** Number of connects we've seen to keyd */
+       uint32_t connects;
+       /** Count of the number of times each command has been used */
+       uint32_t command_stats[KEYD_CMD_LAST];
+};
 
 #endif /* __KEYD_H__ */
 
 #endif /* __KEYD_H__ */