X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/74620ebafeb4a94b61a3747e39d27a4ec7a9fe5a..21b22dceca9d89abfa607419c4289b9eacf84a2f:/core/error.h diff --git a/core/error.h b/core/error.h index 10de8fb0..ac15c425 100644 --- a/core/error.h +++ b/core/error.h @@ -1,3 +1,6 @@ +#ifndef __ERROR_H +#define __ERROR_H + /* error.h: * * Error flagging routines @@ -38,4 +41,23 @@ #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