diff options
author | Martin Mares <mj@ucw.cz> | 1998-12-20 14:24:35 +0000 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1998-12-20 14:24:35 +0000 |
commit | 98e87c8628f9b0a0a96bc46879b65a78b756a718 (patch) | |
tree | aba7284ea2e04740fbbff2e8f1fbb878e84e421e /lib | |
parent | e440395d7d3c503692321e2f6ec4e42bf758acb1 (diff) |
Finer grained logging levels:
#define L_DEBUG "\001" /* Debugging messages */
#define L_INFO "\002" /* Informational messages */
#define L_WARN "\003" /* Warnings */
#define L_ERR "\004" /* Errors */
#define L_AUTH "\005" /* Authorization failed etc. */
#define L_FATAL "\006" /* Fatal errors */
#define L_TRACE "\002" /* Protocol tracing */
#define L_INFO "\003" /* Informational messages */
#define L_REMOTE "\004" /* Remote protocol errors */
#define L_WARN "\004" /* Local warnings */
#define L_ERR "\005" /* Local errors */
#define L_AUTH "\006" /* Authorization failed etc. */
#define L_FATAL "\007" /* Fatal errors */
#define L_BUG "\010" /* BIRD bugs */
Introduced bug() which is like die(), but with level L_BUG. Protocols
should _never_ call die() as it should be used only during initialization
and on irrecoverable catastrophic events like out of memory.
Also introduced ASSERT() which behaves like normal assert(), but it calls
bug() when assertion fails. When !defined(DEBUGGING), it gets ignored.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/birdlib.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/birdlib.h b/lib/birdlib.h index 4b8164bd..f377a99b 100644 --- a/lib/birdlib.h +++ b/lib/birdlib.h @@ -27,13 +27,17 @@ void log(char *msg, ...); void die(char *msg, ...) NORET; +void bug(char *msg, ...) NORET; #define L_DEBUG "\001" /* Debugging messages */ -#define L_INFO "\002" /* Informational messages */ -#define L_WARN "\003" /* Warnings */ -#define L_ERR "\004" /* Errors */ -#define L_AUTH "\005" /* Authorization failed etc. */ -#define L_FATAL "\006" /* Fatal errors */ +#define L_TRACE "\002" /* Protocol tracing */ +#define L_INFO "\003" /* Informational messages */ +#define L_REMOTE "\004" /* Remote protocol errors */ +#define L_WARN "\004" /* Local warnings */ +#define L_ERR "\005" /* Local errors */ +#define L_AUTH "\006" /* Authorization failed etc. */ +#define L_FATAL "\007" /* Fatal errors */ +#define L_BUG "\010" /* BIRD bugs */ void log_init(char *); /* Initialize logging to given file (NULL=stderr, ""=syslog) */ void log_init_debug(char *); /* Initialize debug dump to given file (NULL=stderr, ""=off) */ @@ -48,4 +52,10 @@ void debug(char *msg, ...); /* Printf to debug output */ #define DBG(x, y...) #endif +#ifdef DEBUGGING +#define ASSERT(x) do { if (!(x)) bug("Assertion `%s' failed at %s:%d", #x, __FILE__, __LINE__); } while(0) +#else +#define ASSERT(x) do { } while(0) +#endif + #endif |