X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=debug.c;h=4f6f59ef0a153ff6a7df5c2fd804c499d2ebaec4;hb=dbcc997716f5bec3316c74371eb8077884d6672d;hp=28a86612460a80752da13d8e4d7c1f193c422963;hpb=3edadaafb32f0cb230672f9363698df10c38c66d;p=libradsec.git diff --git a/debug.c b/debug.c index 28a8661..4f6f59e 100644 --- a/debug.c +++ b/debug.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2007 Stig Venaas - * Copyright (C) 2010 NORDUnet A/S + * Copyright (C) 2010,2011 NORDUnet A/S * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -67,34 +67,39 @@ uint8_t debug_get_level() { return debug_level; } -int debug_set_destination(char *dest, int l) { - static const char *facstrings[] = { "LOG_DAEMON", "LOG_MAIL", "LOG_USER", "LOG_LOCAL0", +int debug_set_destination(char *dest, int log_type) { + static const char *facstrings[] = { + "LOG_DAEMON", "LOG_MAIL", "LOG_USER", "LOG_LOCAL0", "LOG_LOCAL1", "LOG_LOCAL2", "LOG_LOCAL3", "LOG_LOCAL4", "LOG_LOCAL5", "LOG_LOCAL6", "LOG_LOCAL7", NULL }; - static const int facvals[] = { LOG_DAEMON, LOG_MAIL, LOG_USER, LOG_LOCAL0, + static const int facvals[] = { + LOG_DAEMON, LOG_MAIL, LOG_USER, LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4, LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7 }; extern int errno; int i; if (!strncasecmp(dest, "file:///", 8)) { - if (l!=1) { + if (log_type != LOG_TYPE_FTICKS) { debug_filepath = stringcopy(dest + 7, 0); debug_file = fopen(debug_filepath, "a"); if (!debug_file) { debug_file = stderr; debugx(1, DBG_ERR, "Failed to open logfile %s\n%s", - debug_filepath, strerror(errno)); + debug_filepath, strerror(errno)); } setvbuf(debug_file, NULL, _IONBF, 0); + } else { + debug(DBG_WARN, "FTicksSyslogFacility starting with file:/// not " + "permitted, assuming default F-Ticks destination"); } return 1; } - if (!strncasecmp(dest, "x-syslog://", 11) || (l==1)) { - if (!strncasecmp(dest, "x-syslog://", 11) || ((l==1) && strncasecmp(dest, "x-syslog://", 11))) { - dest += 11; - if (*dest == '/') - dest++; + if (!strncasecmp(dest, "x-syslog://", 11) || log_type == LOG_TYPE_FTICKS) { + if (!strncasecmp(dest, "x-syslog://", 11)) { + dest += 11; + if (*dest == '/') + dest++; } if (*dest) { for (i = 0; facstrings[i]; i++) @@ -102,21 +107,21 @@ int debug_set_destination(char *dest, int l) { break; if (!facstrings[i]) debugx(1, DBG_ERR, "Unknown syslog facility %s", dest); - if (l==1) - fticks_syslogfacility = facvals[i]; - else + if (log_type != LOG_TYPE_FTICKS) debug_syslogfacility = facvals[i]; +#if defined(WANT_FTICKS) + else if (log_type == LOG_TYPE_FTICKS) + fticks_syslogfacility = facvals[i]; +#endif } else { - if (l==1) - fticks_syslogfacility = 0; - else - debug_syslogfacility = LOG_DAEMON; + if (log_type != LOG_TYPE_FTICKS) + debug_syslogfacility = LOG_DAEMON; +#if defined(WANT_FTICKS) + else if (log_type == LOG_TYPE_FTICKS) + fticks_syslogfacility = 0; +#endif } - if (l==1) { - if (fticks_syslogfacility && !debug_syslogfacility) - openlog(debug_ident, LOG_PID, fticks_syslogfacility); - } else - openlog(debug_ident, LOG_PID, debug_syslogfacility); + openlog(debug_ident, LOG_PID, debug_syslogfacility); return 1; } debug(DBG_ERR, "Unknown log destination, exiting %s", dest); @@ -239,11 +244,7 @@ void fticks_debug(const char *format, ...) { if (!debug_syslogfacility && !fticks_syslogfacility) debug_logit(0xff, format, ap); else { - if (fticks_syslogfacility) { - priority = LOG_DEBUG|fticks_syslogfacility; - } else { - priority = LOG_DEBUG; - } + priority = LOG_DEBUG | fticks_syslogfacility; vsyslog(priority, format, ap); va_end(ap); }