-#include "util.h"
-
-static char *debug_ident = NULL;
-static uint8_t debug_level = DBG_INFO;
-static char *debug_filepath = NULL;
-static FILE *debug_file = NULL;
-static int debug_syslogfacility = 0;
-static uint8_t debug_timestamp = 0;
-
-void debug_init(char *ident) {
- debug_file = stderr;
- setvbuf(debug_file, NULL, _IONBF, 0);
- debug_ident = ident;
-}
-
-void debug_set_level(uint8_t level) {
- switch (level) {
- case 1:
- debug_level = DBG_ERR;
- return;
- case 2:
- debug_level = DBG_WARN;
- return;
- case 3:
- debug_level = DBG_INFO;
- return;
- case 4:
- debug_level = DBG_DBG;
- return;
- }
-}
-
-void debug_timestamp_on() {
- debug_timestamp = 1;
-}
-
-uint8_t debug_get_level() {
- return debug_level;
-}
-
-int debug_set_destination(char *dest) {
- 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,
- LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4,
- LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7 };
- extern int errno;
- int i;
-
- if (!strncasecmp(dest, "file:///", 8)) {
- 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));
- }
- setvbuf(debug_file, NULL, _IONBF, 0);
- return 1;
- }
- if (!strncasecmp(dest, "x-syslog://", 11)) {
- dest += 11;
- if (*dest == '/')
- dest++;
- if (*dest) {
- for (i = 0; facstrings[i]; i++)
- if (!strcasecmp(dest, facstrings[i]))
- break;
- if (!facstrings[i])
- debugx(1, DBG_ERR, "Unknown syslog facility %s", dest);
- debug_syslogfacility = facvals[i];
- } else
- debug_syslogfacility = LOG_DAEMON;
- openlog(debug_ident, LOG_PID, debug_syslogfacility);
- return 1;
- }
- debug(DBG_ERR, "Unknown log destination, exiting %s", dest);
- exit(1);
-}
-
-void debug_reopen_log() {
- extern int errno;