diff --git a/daemon/unbound.c b/daemon/unbound.c index 1a76fb2af..1083aed13 100644 --- a/daemon/unbound.c +++ b/daemon/unbound.c @@ -345,8 +345,6 @@ perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode, * a fork error could not be printed since daemonize closed stderr.*/ if(cfg->use_syslog) { log_init(cfg->logfile, cfg->use_syslog, cfg->chrootdir); - /* but syslog is not really opened by glibc until first msg */ - log_info("open syslog, startup in progress"); } /* if using a logfile, we cannot open it because the logfile would * be created with the wrong permissions, we cannot chown it because diff --git a/doc/Changelog b/doc/Changelog index aed6138f0..9266a3be0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +11 December 2008: Wouter + - better fix for bug #219: use LOG_NDELAY with openlog() call. + Thanks to Tamas Tevesz. + 9 December 2008: Wouter - bug #221 fixed: unbound checkconf checks if key files exist if remote control is enabled. Also fixed NULL printf when not chrooted. diff --git a/util/log.c b/util/log.c index 9474504a0..429610e09 100644 --- a/util/log.c +++ b/util/log.c @@ -95,7 +95,9 @@ log_init(const char* filename, int use_syslog, const char* chrootdir) logging_to_syslog = 0; } if(use_syslog) { - openlog(ident, 0, LOG_DAEMON); + /* do not delay opening until first write, because we may + * chroot and no longer be able to access dev/log and so on */ + openlog(ident, LOG_NDELAY, LOG_DAEMON); logging_to_syslog = 1; return; }