#define HOOK_CORE_STATSREQUEST 1
#define HOOK_CORE_STATSREPLY 2
#define HOOK_CORE_ENDOFHOOKSQUEUE 3
+#define HOOK_CORE_STOPERROR 4
+#define HOOK_CORE_ERROR 5 /* Argument is a struct error_event * */
+#define HOOK_CORE_SIGUSR1 6
#define HOOK_IRC_CONNECTED 100
#define HOOK_IRC_DISCON 101
#define HOOK_SERVER_LOSTSERVER 201 /* Argument is number of lost server */
#define HOOK_SERVER_END_OF_BURST 202
#define HOOK_SERVER_PRE_LOSTSERVER 203 /* Argument is number of lost server */
+#define HOOK_SERVER_LINKED 204 /* Argument is number of server */
#define HOOK_NICK_NEWNICK 300 /* Argument is nick* */
#define HOOK_NICK_RENAME 301 /* Argument is nick* */
#define HOOK_NICK_SETHOST 306 /* Argument is nick* */
#define HOOK_NICK_MODEOPER 307 /* Argument is void*[2] (nick, modes) */
#define HOOK_NICK_KILL 308 /* Argument is void*[2] (nick, reason) */
+#define HOOK_NICK_MASKPRIVMSG 309 /* Argument is void*[3] (nick, target, message) ** NICK COULD BE NULL ** */
#define HOOK_CHANNEL_BURST 400 /* Argument is channel pointer */
#define HOOK_CHANNEL_CREATE 401 /* Argument is void*[2] (channel, nick) */
#define HOOK_CHANNEL_NEWNICK 415 /* Argument is void*[2] (channel, nick) */
#define HOOK_CHANNEL_LOSTNICK 416 /* Argument is void*[2] (channel, nick) */
-#define HOOK_CHANSERV_DBLOADED 500 /* No arg */
+#define HOOK_CHANSERV_DBLOADED 500 /* No arg */
+/* 501 spare for now */
+#define HOOK_CHANSERV_RUNNING 502 /* No arg */
#define HOOK_CONTROL_REGISTERED 600 /* Argument is nick* */
#define HOOK_CONTROL_WHOISREQUEST 601 /* Argument is nick* */
#define HOOK_CONTROL_WHOISREPLY 602 /* Argument is char* */
+#define HOOK_SHADOW_SERVER 701 /* Argument is char* */
+
typedef void (*HookCallback)(int, void *);
-unsigned int hookqueuelength;
+extern unsigned int hookqueuelength;
void inithooks();
int registerhook(int hooknum, HookCallback callback);