diff options
Diffstat (limited to 'sysdep/unix')
-rw-r--r-- | sysdep/unix/log.c | 6 | ||||
-rw-r--r-- | sysdep/unix/main.c | 2 | ||||
-rw-r--r-- | sysdep/unix/unix.h | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/sysdep/unix/log.c b/sysdep/unix/log.c index b13c9415..cc15ff3e 100644 --- a/sysdep/unix/log.c +++ b/sysdep/unix/log.c @@ -184,7 +184,7 @@ debug(char *msg, ...) } void -log_init(int debug) +log_init(int debug, int init) { static struct log_config lc_stderr = { mask: ~0, terminal_flag: 1 }; @@ -197,6 +197,8 @@ log_init(int debug) static struct log_config lc_syslog = { mask: ~0 }; openlog("bird", LOG_CONS | LOG_NDELAY, LOG_DAEMON); add_tail(current_log_list, &lc_syslog.n); + if (!init) + return; } #endif @@ -208,7 +210,7 @@ void log_switch(list *l) { if (EMPTY_LIST(*l)) - current_log_list = &init_log_list; + log_init(0, 0); else current_log_list = l; } diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index fed833bb..e0e3ca98 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -408,7 +408,7 @@ main(int argc, char **argv) parse_args(argc, argv); if (debug_flag == 1) log_init_debug(""); - log_init(debug_flag); + log_init(debug_flag, 1); DBG("Initializing.\n"); resource_init(); diff --git a/sysdep/unix/unix.h b/sysdep/unix/unix.h index 68850bcc..5da925c4 100644 --- a/sysdep/unix/unix.h +++ b/sysdep/unix/unix.h @@ -49,7 +49,7 @@ void krt_io_init(void); /* log.c */ -void log_init(int debug); +void log_init(int debug, int init); void log_init_debug(char *); /* Initialize debug dump to given file (NULL=stderr, ""=off) */ void log_switch(struct list *); |