From: Florent Bruneau Date: Sun, 5 Oct 2008 13:40:21 +0000 (+0200) Subject: Can disable syslog logging on tests. X-Git-Url: http://git.madism.org/?a=commitdiff_plain;h=bcdb5e34f3c251407304e01eea26607e77dd8609;p=apps%2Fpfixtools.git Can disable syslog logging on tests. Signed-off-by: Florent Bruneau --- diff --git a/common/common.c b/common/common.c index 3d2862f..e9e4f2e 100644 --- a/common/common.c +++ b/common/common.c @@ -46,6 +46,7 @@ sig_atomic_t sighup = false; bool daemon_process = true; int log_level = LOG_INFO; +bool log_syslog = false; static FILE *pidfile = NULL; diff --git a/common/common.h b/common/common.h index 03d2fbb..30ce1d8 100644 --- a/common/common.h +++ b/common/common.h @@ -72,7 +72,12 @@ typedef void (*exitcall_t)(void); #define __log(Level, Fmt, ...) \ if (log_level >= Level) { \ - syslog(Level, Fmt, ##__VA_ARGS__); \ + if (log_syslog) { \ + syslog(Level, Fmt, ##__VA_ARGS__); \ + } else { \ + fprintf(stderr, "[%d] " Fmt "\n", \ + Level, ##__VA_ARGS__); \ + } \ } #define debug(Fmt, ...) __log(LOG_DEBUG, Fmt, ##__VA_ARGS__) @@ -90,6 +95,7 @@ typedef void (*exitcall_t)(void); extern sig_atomic_t sigint; extern sig_atomic_t sighup; extern int log_level; +extern bool log_syslog; void common_sighandler(int sig); @@ -108,16 +114,23 @@ int pidfile_refresh(void); int common_setup(const char* pidfile, bool unsafe, const char* runas_user, const char* runas_group, bool daemonize); +static inline void common_startup(void) +{ + signal(SIGPIPE, SIG_IGN); + signal(SIGINT, &common_sighandler); + signal(SIGTERM, &common_sighandler); + signal(SIGHUP, &common_sighandler); + signal(SIGSEGV, &common_sighandler); + info("starting"); +} + + #define DECLARE_MAIN \ static int main_initialize(void) \ { \ + log_syslog = true; \ openlog(DAEMON_NAME, LOG_PID, LOG_MAIL); \ - signal(SIGPIPE, SIG_IGN); \ - signal(SIGINT, &common_sighandler); \ - signal(SIGTERM, &common_sighandler); \ - signal(SIGHUP, &common_sighandler); \ - signal(SIGSEGV, &common_sighandler); \ - info("starting..."); \ + common_startup(); \ return 0; \ } \ \ diff --git a/postlicyd/tst-filters.c b/postlicyd/tst-filters.c index f391fc8..9de410c 100644 --- a/postlicyd/tst-filters.c +++ b/postlicyd/tst-filters.c @@ -38,10 +38,6 @@ #include "file.h" #include -#define DAEMON_NAME "tst-filters" - -DECLARE_MAIN - static char *read_query(const char *basepath, const char *filename, char *buff, char **end, query_t *q) { @@ -189,6 +185,7 @@ int main(int argc, char *argv[]) char path[FILENAME_MAX]; char *p; + common_startup(); p = strrchr(argv[0], '/'); if (p == NULL) { p = argv[0];