X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Ffilter_chain.c;h=7d8369b901def7d9633e78e6c73de5b14cc26f92;hb=57fcbb129aa789857f5028a5195f1e23f444a58a;hp=01688ee2d397b8cb3f1ee14f73bbac560b2d7c46;hpb=3f391479bfc45d0ff6e0c7b87c899e41a192f392;p=collectd.git diff --git a/src/filter_chain.c b/src/filter_chain.c index 01688ee2..7d8369b9 100644 --- a/src/filter_chain.c +++ b/src/filter_chain.c @@ -1,6 +1,6 @@ /** * collectd - src/filter_chain.h - * Copyright (C) 2008,2009 Florian octo Forster + * Copyright (C) 2008-2010 Florian octo Forster * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -19,47 +19,10 @@ * Florian octo Forster **/ -/* - * First tell the compiler to stick to the C99 and POSIX standards as close as - * possible. - */ -#ifndef __STRICT_ANSI__ /* {{{ */ -# define __STRICT_ANSI__ -#endif - -#ifndef _ISOC99_SOURCE -# define _ISOC99_SOURCE -#endif - -#ifdef _POSIX_C_SOURCE -# undef _POSIX_C_SOURCE -#endif -#define _POSIX_C_SOURCE 200112L - -#if 0 -/* Single UNIX needed for strdup. */ -#ifdef _XOPEN_SOURCE -# undef _XOPEN_SOURCE -#endif -#define _XOPEN_SOURCE 500 -#endif - -#ifndef _REENTRANT -# define _REENTRANT -#endif - -#ifndef _THREAD_SAFE -# define _THREAD_SAFE -#endif - -#ifdef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* }}} */ - #include "collectd.h" #include "configfile.h" #include "plugin.h" +#include "utils_complain.h" #include "common.h" #include "filter_chain.h" @@ -129,7 +92,7 @@ static void fc_free_matches (fc_match_t *m) /* {{{ */ (*m->proc.destroy) (&m->user_data); else if (m->user_data != NULL) { - ERROR ("Filter sybsystem: fc_free_matches: There is user data, but no " + ERROR ("Filter subsystem: fc_free_matches: There is user data, but no " "destroy functions has been specified. " "Memory will probably be lost!"); } @@ -149,7 +112,7 @@ static void fc_free_targets (fc_target_t *t) /* {{{ */ (*t->proc.destroy) (&t->user_data); else if (t->user_data != NULL) { - ERROR ("Filter sybsystem: fc_free_targets: There is user data, but no " + ERROR ("Filter subsystem: fc_free_targets: There is user data, but no " "destroy functions has been specified. " "Memory will probably be lost!"); } @@ -211,7 +174,7 @@ static char *fc_strdup (const char *orig) /* {{{ */ * * The configuration looks somewhat like this: * - * + * * * * Plugin "^mysql$" @@ -730,12 +693,31 @@ static int fc_bit_write_invoke (const data_set_t *ds, /* {{{ */ if ((plugin_list == NULL) || (plugin_list[0] == NULL)) { + static c_complain_t enoent_complaint = C_COMPLAIN_INIT_STATIC; + status = plugin_write (/* plugin = */ NULL, ds, vl); - if (status != 0) + if (status == ENOENT) + { + /* in most cases this is a permanent error, so use the complain + * mechanism rather than spamming the logs */ + c_complain (LOG_INFO, &enoent_complaint, + "Filter subsystem: Built-in target `write': Dispatching value to " + "all write plugins failed with status %i (ENOENT). " + "Most likely this means you didn't load any write plugins.", + status); + } + else if (status != 0) { INFO ("Filter subsystem: Built-in target `write': Dispatching value to " "all write plugins failed with status %i.", status); } + else + { + assert (status == 0); + c_release (LOG_INFO, &enoent_complaint, "Filter subsystem: " + "Built-in target `write': Some write plugin is back to normal " + "operation. `write' succeeded."); + } } else {