From 1d9d1e277da91b70c03752a24de81fedab0bfb07 Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net" Date: Mon, 21 Apr 2008 12:21:23 +0000 Subject: [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 --- src/ulogd.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/ulogd.c') 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; + } } } } -- cgit v1.2.3