X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Flogger.c;h=2421464a765af14ddb26539f3c9aa4d2a82198c1;hp=8029565ff43da5260a51eb219692148ac51fecb8;hb=f08fc359a0b7f638e73a8f866119b016b7dff8de;hpb=1401faf608e1c8af0d0754e545b0ec79d2bd5d93 diff --git a/src/logger.c b/src/logger.c index 8029565f..2421464a 100644 --- a/src/logger.c +++ b/src/logger.c @@ -17,27 +17,22 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: logger.c,v 1.1.2.2 2003/07/06 23:16:28 guus Exp $ + $Id: logger.c,v 1.1.2.9 2003/08/02 20:50:38 guus Exp $ */ -#include -#include -#include -#include +#include "system.h" #include "conf.h" #include "logger.h" -#include "system.h" - -volatile int debug_level = DEBUG_NOTHING; -static int logmode = LOGMODE_STDERR; +debug_t debug_level = DEBUG_NOTHING; +static logmode_t logmode = LOGMODE_STDERR; static pid_t logpid; extern char *logfilename; static FILE *logfile = NULL; static const char *logident = NULL; -void openlogger(const char *ident, int mode) { +void openlogger(const char *ident, logmode_t mode) { logident = ident; logmode = mode; @@ -52,23 +47,34 @@ void openlogger(const char *ident, int mode) { logmode = LOGMODE_NULL; break; case LOGMODE_SYSLOG: +#ifdef HAVE_SYSLOG_H openlog(logident, LOG_CONS | LOG_PID, LOG_DAEMON); break; +#endif + case LOGMODE_NULL: + break; } } -void vlogger(int priority, const char *format, va_list ap) { +void logger(int priority, const char *format, ...) { + va_list ap; + + va_start(ap, format); + switch(logmode) { case LOGMODE_STDERR: vfprintf(stderr, format, ap); fprintf(stderr, "\n"); + fflush(stderr); break; case LOGMODE_FILE: fprintf(logfile, "%ld %s[%d]: ", time(NULL), logident, logpid); vfprintf(logfile, format, ap); fprintf(logfile, "\n"); + fflush(logfile); break; case LOGMODE_SYSLOG: +#ifdef HAVE_SYSLOG_H #ifdef HAVE_VSYSLOG vsyslog(priority, format, ap); #else @@ -79,7 +85,12 @@ void vlogger(int priority, const char *format, va_list ap) { } #endif break; +#endif + case LOGMODE_NULL: + break; } + + va_end(ap); } void closelogger(void) { @@ -88,7 +99,13 @@ void closelogger(void) { fclose(logfile); break; case LOGMODE_SYSLOG: +#ifdef HAVE_SYSLOG_H closelog(); break; +#endif + case LOGMODE_NULL: + case LOGMODE_STDERR: + break; + break; } }