summaryrefslogtreecommitdiffstats
path: root/src/ulogd.c
diff options
context:
space:
mode:
author/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net </C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net>2008-04-21 12:21:23 +0000
committer/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net </C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net>2008-04-21 12:21:23 +0000
commit1d9d1e277da91b70c03752a24de81fedab0bfb07 (patch)
tree4b855c8d0ed3848c6e53c413f28cf14294cef464 /src/ulogd.c
parent95868a6526ace64557cc9f8acbeb3b48a2f95e12 (diff)
[ULOGD PATCH] Fix multiple usage of DB output plugin.
Due to the modifications done to be able to use multiple time the SOURCE plugin, a single instance of database output plugin could not anymore be used in separate stack. This patch fixes this by limiting the effect of the previous modification on SOURCE plugin. Signed-off-by: Eric Leblond <eric@inl.fr>
Diffstat (limited to 'src/ulogd.c')
-rw-r--r--src/ulogd.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/ulogd.c b/src/ulogd.c
index 249bde3..3a1e3d9 100644
--- a/src/ulogd.c
+++ b/src/ulogd.c
@@ -717,13 +717,17 @@ static int pluginstance_started(struct ulogd_pluginstance *npi)
struct ulogd_pluginstance_stack *stack;
struct ulogd_pluginstance *pi;
- llist_for_each_entry(stack, &ulogd_pi_stacks, stack_list) {
- llist_for_each_entry(pi, &stack->list, list) {
- if (!strcmp(pi->id, npi->id)) {
- ulogd_log(ULOGD_INFO, "%s instance already "
- "loaded\n", pi->id);
- llist_add(&pi->plist, &npi->plist);
- return 1;
+ /* Only SOURCE plugin need to be started once */
+ if (npi->plugin->input.type == ULOGD_DTYPE_SOURCE) {
+ llist_for_each_entry(stack, &ulogd_pi_stacks, stack_list) {
+ llist_for_each_entry(pi, &stack->list, list) {
+ if (!strcmp(pi->id, npi->id)) {
+ ulogd_log(ULOGD_INFO,
+ "%s instance already "
+ "loaded\n", pi->id);
+ llist_add(&pi->plist, &npi->plist);
+ return 1;
+ }
}
}
}