static int ioctl_sock = -1;
static int urandom_fd = -1;
+void __iflog(int lvl, const char *fmt, ...)
+{
+ va_list ap;
+
+ if (lvl > config.log_level)
+ return;
+
+ va_start(ap, fmt);
+
+ if (config.log_syslog) {
+ vsyslog(lvl, fmt, ap);
+ } else {
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+ }
+
+ va_end(ap);
+}
+
static void sighandler(_unused int signal)
{
uloop_end();
extern struct vlist_tree leases;
extern struct config config;
-#define __iflog(lvl, fmt, ...) \
- do { \
- if (lvl > config.log_level) \
- break; \
- if (config.log_syslog) \
- syslog(lvl, fmt __VA_OPT__(, ) __VA_ARGS__); \
- else \
- fprintf(stderr, fmt "\n" __VA_OPT__(, ) __VA_ARGS__); \
- } while(0)
-
+void __iflog(int lvl, const char *fmt, ...);
#define debug(fmt, ...) __iflog(LOG_DEBUG, fmt __VA_OPT__(, ) __VA_ARGS__)
#define info(fmt, ...) __iflog(LOG_INFO, fmt __VA_OPT__(, ) __VA_ARGS__)
#define notice(fmt, ...) __iflog(LOG_NOTICE, fmt __VA_OPT__(, ) __VA_ARGS__)