From 05643589cf2756c300503d2499a46b46c5385cfb Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Thu, 11 Dec 2008 08:14:22 +0000 Subject: [PATCH] better #219 fix. git-svn-id: file:///svn/unbound/trunk@1386 be551aaa-1e26-0410-a405-d3ace91eadb9 --- daemon/unbound.c | 2 -- doc/Changelog | 4 ++++ util/log.c | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) 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; }