summaryrefslogtreecommitdiffstats
path: root/output/ulogd_output_LOGEMU.c
diff options
context:
space:
mode:
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
commit355521a260ea0f4711c3d8e1ed095142651f895a (patch)
tree8ca63c3943e278395f453109e905b60110442dfe /output/ulogd_output_LOGEMU.c
parent25fb0867313221b05d806dad9df38e0401c935fe (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/ulogd_output_LOGEMU.c')
-rw-r--r--output/ulogd_output_LOGEMU.c5
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: