threshold plugin: Register callbacks only once.
authorMichael Salmon <michael.salmon@ericsson.com>
Thu, 16 Jul 2015 07:05:54 +0000 (09:05 +0200)
committerFlorian Forster <octo@collectd.org>
Fri, 4 Dec 2015 16:34:57 +0000 (17:34 +0100)
Fixes: #551
Signed-off-by: Florian Forster <octo@collectd.org>
src/threshold.c

index 391ee93..a70ec8a 100644 (file)
@@ -962,6 +962,7 @@ int ut_config (oconfig_item_t *ci)
 { /* {{{ */
   int i;
   int status = 0;
+  int old_size = c_avl_size (threshold_tree);
 
   threshold_t th;
 
@@ -1005,7 +1006,9 @@ int ut_config (oconfig_item_t *ci)
       break;
   }
 
-  if (c_avl_size (threshold_tree) > 0) {
+  /* register callbacks if this is the first time we see a valid config */
+  if ((old_size == 0) && (c_avl_size (threshold_tree) > 0))
+  {
     plugin_register_missing ("threshold", ut_missing,
         /* user data = */ NULL);
     plugin_register_write ("threshold", ut_check_threshold,