diff options
author | laforge <laforge> | 2001-06-14 19:25:25 +0000 |
---|---|---|
committer | laforge <laforge> | 2001-06-14 19:25:25 +0000 |
commit | efea0aa10d862a1a0e36043cfd6f712b8cd326aa (patch) | |
tree | e155ce7a225435658b3e81ab993020eb138a8f5a /extensions/ulogd_LOGEMU.c | |
parent | 9a77a6adab3957ccdc348f54e2fe6f8fe1abe8b0 (diff) |
Support for logfile cycling (SIGHUP handler)
Diffstat (limited to 'extensions/ulogd_LOGEMU.c')
-rw-r--r-- | extensions/ulogd_LOGEMU.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/extensions/ulogd_LOGEMU.c b/extensions/ulogd_LOGEMU.c index 960084e..35f768d 100644 --- a/extensions/ulogd_LOGEMU.c +++ b/extensions/ulogd_LOGEMU.c @@ -1,4 +1,4 @@ -/* ulogd_LOGEMU.c, Version $Revision: 1.4 $ +/* ulogd_LOGEMU.c, Version $Revision: 1.5 $ * * ulogd output target for syslog logging emulation * @@ -8,7 +8,7 @@ * (C) 2000 by Harald Welte <laforge@gnumonks.org> * This software is released under the terms of GNU GPL * - * $Id: ulogd_LOGEMU.c,v 1.4 2001/03/25 18:25:01 laforge Exp $ + * $Id: ulogd_LOGEMU.c,v 1.5 2001/05/20 15:07:45 laforge Exp $ * */ @@ -245,9 +245,28 @@ static int get_ids(void) return 0; } +void sighup_handler_logemu(int signal) +{ + switch (signal) { + case SIGHUP: + ulogd_log(ULOGD_NOTICE, "syslogemu: reopening logfile\n"); + fclose(of); + of = fopen(syslogf_ce.u.string, "a"); + if (!of) { + ulogd_log(ULOGD_FATAL, "can't open syslogemu: %s\n", + strerror(errno)); + exit(2); + } + break; + default: + break; + } +} + + static ulog_output_t logemu_op[] = { - { NULL, "syslogemu", &_output_logemu }, - { NULL, "", NULL }, + { NULL, "syslogemu", &_output_logemu, &sighup_handler_logemu }, + { NULL, "", NULL, NULL }, }; /* register output plugin with ulogd */ |