diff options
| author | David Lamparter <equinox@opensourcerouting.org> | 2024-01-25 22:54:54 +0100 | 
|---|---|---|
| committer | David Lamparter <equinox@opensourcerouting.org> | 2024-03-10 12:42:14 +0100 | 
| commit | 95a737ed1bf7f89cb8e5367ef8e8e66a800084d7 (patch) | |
| tree | 9c637ac3cc463ed198f6dbd81578bbb90bb57d07 /ldpd/log.h | |
| parent | 5f16c640c248bba898addb3ff36b84d212f6e8e6 (diff) | |
ldpd: use zlog recirculation for subprocesses
This way, full functionality of `zlog_*` is available.
Having `fatal()` be wrappers around `assertf()` also means we get
backtraces, which is not the case for a plain `exit(1)`.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ldpd/log.h')
| -rw-r--r-- | ldpd/log.h | 43 | 
1 files changed, 22 insertions, 21 deletions
diff --git a/ldpd/log.h b/ldpd/log.h index 641ad8ac5e..aa6f700608 100644 --- a/ldpd/log.h +++ b/ldpd/log.h @@ -8,29 +8,30 @@  #ifndef LOG_H  #define LOG_H -#include <stdarg.h> +#include "log.h" +#include "assert.h"  extern const char	*log_procname; -void	 logit(int, const char *, ...) -		__attribute__((__format__ (printf, 2, 3))); -void	 vlog(int, const char *, va_list) -		__attribute__((__format__ (printf, 2, 0))); -void	 log_warn(const char *, ...) -		__attribute__((__format__ (printf, 1, 2))); -void	 log_warnx(const char *, ...) -		__attribute__((__format__ (printf, 1, 2))); -void	 log_info(const char *, ...) -		__attribute__((__format__ (printf, 1, 2))); -void	 log_notice(const char *, ...) -		__attribute__((__format__ (printf, 1, 2))); -void	 log_debug(const char *, ...) -		__attribute__((__format__ (printf, 1, 2))); -void	 fatal(const char *) -		__attribute__ ((noreturn)) -		__attribute__((__format__ (printf, 1, 0))); -void	 fatalx(const char *) -		__attribute__ ((noreturn)) -		__attribute__((__format__ (printf, 1, 0))); +#define log_warnx	zlog_err	/* yes this is poorly named */ +#define log_warn	zlog_warn +#define log_info	zlog_info +#define log_notice	zlog_notice	/* not used anywhere */ +#define log_debug	zlog_debug + +#define fatal(msg)                                                             \ +	do {                                                                   \ +		assertf(0, "fatal in %s: %pSQq (%m)", log_procname,            \ +			(const char *)msg);                                    \ +		__builtin_unreachable();                                       \ +	} while (0)                                                            \ +	/* end */ +#define fatalx(msg)                                                            \ +	do {                                                                   \ +		assertf(0, "fatal in %s: %pSQq", log_procname,                 \ +			(const char *)msg);                                    \ +		__builtin_unreachable();                                       \ +	} while (0)                                                            \ +	/* end */  #endif /* LOG_H */  | 
