diff options
author | laforge <laforge> | 2001-06-14 19:25:25 +0000 |
---|---|---|
committer | laforge <laforge> | 2001-06-14 19:25:25 +0000 |
commit | 71fd5ce504ee00c96ba8033b1c54fa04614a98a6 (patch) | |
tree | cd76be0ad990eb3010583991e3da2657488b5ce2 /ulogd/extensions/ulogd_LOGEMU.c | |
parent | 5a94632e3102bdb60db0ce863e0e01a08d02e109 (diff) |
Support for logfile cycling (SIGHUP handler)
Diffstat (limited to 'ulogd/extensions/ulogd_LOGEMU.c')
-rw-r--r-- | ulogd/extensions/ulogd_LOGEMU.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/ulogd/extensions/ulogd_LOGEMU.c b/ulogd/extensions/ulogd_LOGEMU.c index 960084e..35f768d 100644 --- a/ulogd/extensions/ulogd_LOGEMU.c +++ b/ulogd/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 */ |