ulog: implement ulog_close()
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 26 Feb 2015 12:35:50 +0000 (13:35 +0100)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 26 Feb 2015 12:35:50 +0000 (13:35 +0100)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
ulog.c

diff --git a/ulog.c b/ulog.c
index f7c92d8..776a0c4 100644 (file)
--- a/ulog.c
+++ b/ulog.c
@@ -121,11 +121,24 @@ static void ulog_syslog(int priority, const char *fmt, va_list ap)
 
 void ulog_open(int channels, int facility, const char *ident)
 {
+       ulog_close();
+
        _ulog_channels = channels;
        _ulog_facility = facility;
        _ulog_ident = ident;
 }
 
+void ulog_close(void)
+{
+       if (!_ulog_initialized)
+               return;
+
+       if (_ulog_channels & ULOG_SYSLOG)
+               closelog();
+
+       _ulog_initialized = 0;
+}
+
 void ulog_threshold(int threshold)
 {
        _ulog_threshold = threshold;