diff options
author | /C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org> | 2008-02-03 11:33:56 +0000 |
---|---|---|
committer | /C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org> | 2008-02-03 11:33:56 +0000 |
commit | 355521a260ea0f4711c3d8e1ed095142651f895a (patch) | |
tree | 8ca63c3943e278395f453109e905b60110442dfe /output | |
parent | 25fb0867313221b05d806dad9df38e0401c935fe (diff) |
From: Eric Leblond <eric@inl.fr>:
Changed sighup_handler_print to fallback to continue using old descriptor on new file opening failure.
This patch is a backport of Marius Tomaschewski <mt@suse.de> work on ulogd.
Diffstat (limited to 'output')
-rw-r--r-- | output/ulogd_output_LOGEMU.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/output/ulogd_output_LOGEMU.c b/output/ulogd_output_LOGEMU.c index c18aad7..b8d3903 100644 --- a/output/ulogd_output_LOGEMU.c +++ b/output/ulogd_output_LOGEMU.c @@ -114,15 +114,18 @@ static int _output_logemu(struct ulogd_pluginstance *upi) static void signal_handler_logemu(struct ulogd_pluginstance *pi, int signal) { struct logemu_instance *li = (struct logemu_instance *) &pi->private; + FILE *old = li->of; switch (signal) { case SIGHUP: ulogd_log(ULOGD_NOTICE, "syslogemu: reopening logfile\n"); - fclose(li->of); li->of = fopen(pi->config_kset->ces[0].u.string, "a"); if (!li->of) { ulogd_log(ULOGD_ERROR, "can't reopen syslogemu: %s\n", strerror(errno)); + li->of = old; + } else { + fclose(old); } break; default: |