#include <inttypes.h>
#include <stdbool.h>
-#include "keystructs.h"
+#include "keydb.h"
#include "ll.h"
+/**
+ * @brief Holds key details suitable for doing stats on.
+ */
+struct stats_key {
+ /** The keyid. */
+ uint64_t keyid;
+ /** Used for marking during DFS/BFS. */
+ int colour;
+ /** The key that lead us to this one for DFS/BFS. */
+ uint64_t parent;
+ /** A linked list of the signatures on this key. */
+ struct ll *sigs;
+ /** A linked list of the keys this key signs. */
+ struct ll *signs;
+ /** A bool indicating if we've initialized the sigs element yet. */
+ bool gotsigs;
+ /** If we shouldn't consider the key in calculations. */
+ bool disabled;
+ /** If the key is revoked (and shouldn't be considered). */
+ bool revoked;
+};
+
/**
* initcolour - Clear the key graph ready for use.
* @parent: Do we want to clear the parent pointers too?
* key we have. It returns as soon as a path is found or when we run out
* of keys; whichever comes sooner.
*/
-unsigned long findpath(struct stats_key *have, struct stats_key *want);
+unsigned long findpath(struct onak_dbctx *dbctx,
+ struct stats_key *have, struct stats_key *want);
/**
* dofindpath - Given 2 keys displays a path between them.
* key we have. It returns as soon as a path is found or when we run out
* of keys; whichever comes sooner.
*/
-void dofindpath(uint64_t have, uint64_t want, bool html, int count);
+void dofindpath(struct onak_dbctx *dbctx,
+ uint64_t have, uint64_t want, bool html, int count);
-struct stats_key *furthestkey(struct stats_key *have);
+struct stats_key *furthestkey(struct onak_dbctx *dbctx, struct stats_key *have);
#endif /* __STATS_H__ */