Code

sensors plugin: Fix the use of the ignorelist, so it matches the documentation.
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Mon, 30 Jul 2007 18:15:31 +0000 (20:15 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Mon, 30 Jul 2007 18:15:31 +0000 (20:15 +0200)
ChangeLog
src/sensors.c

index cd3f54b8bdd8235a522ee26e84a57bae7e510e57..25dcc3ee1925f1f52be9f5321e27ba4555ff3c3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-07-30, Version 4.0.6
+       * sensors plugin: Fix the ignorelist functionality: Only the `type
+         instance' was used to match against the list, but the documentation
+         told otherwise. This release fixes the code, so it complies with the
+         documentation.
+
 2007-07-05, Version 4.0.5
        * Portability: More fixes for OpenBSD have been included.
 
index e1bc7aafc2100ef2341b990ed7ad9352e2783c30..fde8dcd7ec00e2a93e6d4826a92d0d67775c9cc5 100644 (file)
@@ -347,12 +347,24 @@ static void sensors_submit (const char *plugin_instance,
                const char *type, const char *type_instance,
                double val)
 {
+       char match_key[1024];
+       int status;
+
        value_t values[1];
        value_list_t vl = VALUE_LIST_INIT;
 
-       if ((sensor_list != NULL)
-                       && (ignorelist_match (sensor_list, type_instance)))
+       status = snprintf (match_key, sizeof (match_key), "%s/%s-%s",
+                       plugin_instance, type, type_instance);
+       if ((status < 1) || (status >= sizeof (match_key)))
                return;
+       match_key[sizeof (match_key) - 1] = '\0';
+
+       if (sensor_list != NULL)
+       {
+               DEBUG ("sensors plugin: Checking ignorelist for `%s'", match_key);
+               if (ignorelist_match (sensor_list, match_key))
+                       return;
+       }
 
        values[0].gauge = val;