]> jfr.im git - irc/quakenet/newserv.git/blobdiff - core/error.h
CHANSERV: reduce reason to 15 chars
[irc/quakenet/newserv.git] / core / error.h
index 10de8fb038db4c9dbcf51b266239ca48f63f3ddb..ac15c4253016fa48fae2e746161b7f376561b05b 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef __ERROR_H
+#define __ERROR_H
+
 /* error.h:
  *
  * Error flagging routines 
 #define ERR_FATAL    4
 #define ERR_STOP     5
 
-void Error(char *source, int severity, char *reason, ... );
+struct error_event {
+  int severity;
+  char *message;
+  char *source;
+};
+
+typedef void (*CoreHandlerFn)(void *arg);
+
+typedef struct corehandler {
+  void *arg;
+  CoreHandlerFn fn;
+  struct corehandler *prev, *next;
+} corehandler;
+
+void Error(char *source, int severity, char *reason, ... ) __attribute__ ((format (printf, 3, 4)));
+
+corehandler *registercorehandler(CoreHandlerFn fn, void *arg);
+void deregistercorehandler(corehandler *c);
+
+#endif