X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/280505a58684491c53545e8115f2768b14b8d8c4..e2527cba3979ffb1f5e9dfae3c8701f046ffee35:/core/error.h diff --git a/core/error.h b/core/error.h index 8d3f2023..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 @@ -41,6 +44,20 @@ struct error_event { int severity; char *message; + char *source; }; -void Error(char *source, int severity, char *reason, ... ); +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