#ifndef __HOOKS_H
#define __HOOKS_H
+#include <limits.h>
+
#define HOOKMAX 5000
/* This is the authoritative registry of all known hook numbers */
#define HOOK_AUTH_FLAGSUPDATED 801 /* Argument is void*[2] (authname*, u_int64_t*) */
#define HOOK_AUTH_LOSTAUTHNAME 802 /* Argument is authname* */
+#define HOOK_TRUSTS_DB_CLOSED 900 /* No arg */
+#define HOOK_TRUSTS_DB_LOADED 901 /* No arg */
+#define HOOK_TRUSTS_NEWNICK 902 /* Argument is void*[2] (nick*, long) */
+#define HOOK_TRUSTS_LOSTNICK 903 /* Argument is void*[2] (nick*, long) */
+#define HOOK_TRUSTS_NEWGROUP 904 /* Argument is trustgroup* */
+#define HOOK_TRUSTS_LOSTGROUP 905 /* Argument is trustgroup* */
+#define HOOK_TRUSTS_ADDGROUP 906 /* Argument is trustgroup* */
+#define HOOK_TRUSTS_DELGROUP 907 /* Argument is trustgroup* */
+#define HOOK_TRUSTS_ADDHOST 908 /* Argument is trusthost* */
+#define HOOK_TRUSTS_DELHOST 909 /* Argument is trusthost* */
+#define HOOK_TRUSTS_MODIFYGROUP 910 /* Argument is trustgroup* */
+#define HOOK_TRUSTS_LOSTHOST 911 /* Argument is trusthost* */
+
+#define HOOK_TRUSTS_DBLOADED 1000
+
+#define PRIORITY_DEFAULT 0
+
+#define PRIORITY_MAX LONG_MIN
+#define PRIORITY_MIN LONG_MAX
+
typedef void (*HookCallback)(int, void *);
extern unsigned int hookqueuelength;
int registerhook(int hooknum, HookCallback callback);
int deregisterhook(int hooknum, HookCallback callback);
void triggerhook(int hooknum, void *arg);
+int registerpriorityhook(int hooknum, HookCallback callback, long priority);
#endif