X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fsensors.c;h=438cd7464ae09793eb8d52e038b6024519503960;hb=9d9678b9e753ea0936612021f4f87f8092ab4e31;hp=2f3695f264401caa44b5feba6decfdec31636714;hpb=8ed3735980de12f32dd488d0d285d108f098836e;p=collectd.git diff --git a/src/sensors.c b/src/sensors.c index 2f3695f2..438cd746 100644 --- a/src/sensors.c +++ b/src/sensors.c @@ -18,7 +18,7 @@ * * Authors: * Florian octo Forster - * + * * Lubos Stanek Wed Oct 27, 2006 * - config ExtendedSensorNaming option * - precise sensor feature selection (chip-bus-address/type-feature) @@ -34,9 +34,9 @@ **/ #include "collectd.h" + #include "common.h" #include "plugin.h" -#include "configfile.h" #include "utils_ignorelist.h" #if defined(HAVE_SENSORS_SENSORS_H) @@ -76,7 +76,7 @@ struct sensors_labeltypes_s typedef struct sensors_labeltypes_s sensors_labeltypes_t; /* finite list of known labels extracted from lm_sensors */ -static sensors_labeltypes_t known_features[] = +static sensors_labeltypes_t known_features[] = { { "fan1", SENSOR_TYPE_FANSPEED }, { "fan2", SENSOR_TYPE_FANSPEED }, @@ -178,7 +178,7 @@ static _Bool use_labels = 0; "as bug." #endif -featurelist_t *first_feature = NULL; +static featurelist_t *first_feature = NULL; static ignorelist_t *sensor_list; #if SENSORS_API_VERSION < 0x400 @@ -215,11 +215,9 @@ static int sensors_snprintf_chip_name (char *buf, size_t buf_size, static int sensors_feature_name_to_type (const char *name) { - int i; - /* Yes, this is slow, but it's only ever done during initialization, so * it's a one time cost.. */ - for (i = 0; i < known_features_num; i++) + for (int i = 0; i < known_features_num; i++) if (strcasecmp (known_features[i].label, name) == 0) return (known_features[i].type); @@ -273,9 +271,8 @@ static int sensors_config (const char *key, const char *value) return (0); } -void sensors_free_features (void) +static void sensors_free_features (void) { - featurelist_t *thisft; featurelist_t *nextft; if (first_feature == NULL) @@ -283,7 +280,7 @@ void sensors_free_features (void) sensors_cleanup (); - for (thisft = first_feature; thisft != NULL; thisft = nextft) + for (featurelist_t *thisft = first_feature; thisft != NULL; thisft = nextft) { nextft = thisft->next; sfree (thisft); @@ -297,7 +294,7 @@ static int sensors_load_conf (void) FILE *fh = NULL; featurelist_t *last_feature = NULL; - + const sensors_chip_name *chip; int chip_num; @@ -386,13 +383,12 @@ static int sensors_load_conf (void) continue; } - fl = (featurelist_t *) malloc (sizeof (featurelist_t)); + fl = calloc (1, sizeof (*fl)); if (fl == NULL) { - ERROR ("sensors plugin: malloc failed."); + ERROR ("sensors plugin: calloc failed."); continue; } - memset (fl, '\0', sizeof (featurelist_t)); fl->chip = chip; fl->data = feature; @@ -443,13 +439,12 @@ static int sensors_load_conf (void) && (subfeature->type != SENSORS_SUBFEATURE_POWER_INPUT)) continue; - fl = (featurelist_t *) malloc (sizeof (featurelist_t)); + fl = calloc (1, sizeof (*fl)); if (fl == NULL) { - ERROR ("sensors plugin: malloc failed."); + ERROR ("sensors plugin: calloc failed."); continue; } - memset (fl, '\0', sizeof (featurelist_t)); fl->chip = chip; fl->feature = feature; @@ -486,12 +481,11 @@ static int sensors_shutdown (void) static void sensors_submit (const char *plugin_instance, const char *type, const char *type_instance, - double val) + double value) { char match_key[1024]; int status; - value_t values[1]; value_list_t vl = VALUE_LIST_INIT; status = ssnprintf (match_key, sizeof (match_key), "%s/%s-%s", @@ -506,12 +500,9 @@ static void sensors_submit (const char *plugin_instance, return; } - values[0].gauge = val; - - vl.values = values; + vl.values = &(value_t) { .gauge = value }; vl.values_len = 1; - sstrncpy (vl.host, hostname_g, sizeof (vl.host)); sstrncpy (vl.plugin, "sensors", sizeof (vl.plugin)); sstrncpy (vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance)); @@ -523,13 +514,11 @@ static void sensors_submit (const char *plugin_instance, static int sensors_read (void) { - featurelist_t *fl; - if (sensors_load_conf () != 0) return (-1); #if SENSORS_API_VERSION < 0x400 - for (fl = first_feature; fl != NULL; fl = fl->next) + for (featurelist_t *fl = first_feature; fl != NULL; fl = fl->next) { double value; int status; @@ -557,7 +546,7 @@ static int sensors_read (void) /* #endif SENSORS_API_VERSION < 0x400 */ #elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) - for (fl = first_feature; fl != NULL; fl = fl->next) + for (featurelist_t *fl = first_feature; fl != NULL; fl = fl->next) { double value; int status;