diff options
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 |
commit | 1d9d1e277da91b70c03752a24de81fedab0bfb07 (patch) | |
tree | 4b855c8d0ed3848c6e53c413f28cf14294cef464 /src | |
parent | 95868a6526ace64557cc9f8acbeb3b48a2f95e12 (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')
-rw-r--r-- | src/ulogd.c | 18 |
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; + } } } } |