summaryrefslogtreecommitdiffstats
path: root/sinks/syslog
diff options
context:
space:
mode:
authorDmitri Pal <dpal@redhat.com>2009-02-25 08:38:29 -0500
committerDmitri Pal <dpal@redhat.com>2009-02-25 08:38:29 -0500
commit8c83881017e3815534f9d880c58b78a56ca4f971 (patch)
treeb5603cf3a695c1e79d6b4dd59062842706303718 /sinks/syslog
parent0df05e7a4b2533c73544d5405c183d0bda2c153f (diff)
downloadelapi_draft-8c83881017e3815534f9d880c58b78a56ca4f971.tar.gz
elapi_draft-8c83881017e3815534f9d880c58b78a56ca4f971.tar.xz
elapi_draft-8c83881017e3815534f9d880c58b78a56ca4f971.zip
Making the sink to be able to inicate that it is loadable once per process.
Diffstat (limited to 'sinks/syslog')
-rw-r--r--sinks/syslog/elapi_sink_syslog.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sinks/syslog/elapi_sink_syslog.c b/sinks/syslog/elapi_sink_syslog.c
index c9931a8..4d39838 100644
--- a/sinks/syslog/elapi_sink_syslog.c
+++ b/sinks/syslog/elapi_sink_syslog.c
@@ -10,6 +10,9 @@
#include "elapi_util.h"
#include "elapi_ini.h"
+/* Global variable - instance */
+static int instance = 0;
+
/* FIXME - this should be taken from the config.h generated by autotools */
#define SYSLOG_RETRY 60
/*
@@ -135,6 +138,8 @@ static int init_config(struct data_descriptor *dblock)
dblock->config = (void *)(conf_data);
openlog(conf_data->ident,conf_data->option,conf_data->facility);
+ instance++;
+ DEBUG_NUMBER("syslog instance",instance);
DEBUG_STRING("init_config","Entry");
return EOK;
@@ -261,6 +266,9 @@ static void syslog_sink_close(struct data_descriptor *dblock)
}
closelog();
+ DEBUG_STRING("Closed syslog","");
+ if(instance) instance--;
+ DEBUG_NUMBER("syslog instance",instance);
DEBUG_STRING("syslog_sink_close","Exit");
}
@@ -292,6 +300,8 @@ void get_sink_info(struct sink_capability *sink_cpb_block)
DEBUG_STRING("get_sink_info","Entry");
sink_cpb_block->retry_interval = SYSLOG_RETRY;
+ sink_cpb_block->flags = SINK_FLAG_LOAD_SINGLE;
+ sink_cpb_block->instance = instance;
sink_cpb_block->init_cb = syslog_sink_init;
sink_cpb_block->cleanup_cb = syslog_sink_cleanup;
sink_cpb_block->format_cb = syslog_sink_format;