X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fthermal.c;h=c6db8c046036f52552e487ea8f11d780c323ffa5;hb=d1bc5fb594a846ce31e4326bc81520a58b6310f8;hp=0ad0d90a04377126132e35cad77e4d592a844a1d;hpb=cc0bb2b472628ccede974a02c822d1f9189f0d21;p=collectd.git diff --git a/src/thermal.c b/src/thermal.c index 0ad0d90a..c6db8c04 100644 --- a/src/thermal.c +++ b/src/thermal.c @@ -20,6 +20,7 @@ **/ #include "collectd.h" + #include "common.h" #include "plugin.h" #include "configfile.h" @@ -35,8 +36,8 @@ static const char *config_keys[] = { "ForceUseProcfs" }; -const char *const dirname_sysfs = "/sys/class/thermal"; -const char *const dirname_procfs = "/proc/acpi/thermal_zone"; +static const char *const dirname_sysfs = "/sys/class/thermal"; +static const char *const dirname_procfs = "/proc/acpi/thermal_zone"; static _Bool force_procfs = 0; static ignorelist_t *device_list; @@ -55,6 +56,9 @@ static void thermal_submit (const char *plugin_instance, enum dev_type dt, v.gauge = value; vl.values = &v; + vl.values_len = 1; + + sstrncpy (vl.host, hostname_g, sizeof (vl.host)); sstrncpy (vl.plugin, "thermal", sizeof(vl.plugin)); if (plugin_instance != NULL) sstrncpy (vl.plugin_instance, plugin_instance, @@ -77,12 +81,12 @@ static int thermal_sysfs_device_read (const char __attribute__((unused)) *dir, if (device_list && ignorelist_match (device_list, name)) return -1; - len = snprintf (filename, sizeof (filename), + len = ssnprintf (filename, sizeof (filename), "%s/%s/temp", dirname_sysfs, name); if ((len < 0) || ((size_t) len >= sizeof (filename))) return -1; - len = read_file_contents (filename, data, sizeof(data)); + len = (ssize_t) read_file_contents (filename, data, sizeof(data)); if (len > 1 && data[--len] == '\n') { char *endptr = NULL; double temp; @@ -97,12 +101,12 @@ static int thermal_sysfs_device_read (const char __attribute__((unused)) *dir, } } - len = snprintf (filename, sizeof (filename), + len = ssnprintf (filename, sizeof (filename), "%s/%s/cur_state", dirname_sysfs, name); if ((len < 0) || ((size_t) len >= sizeof (filename))) return -1; - len = read_file_contents (filename, data, sizeof(data)); + len = (ssize_t) read_file_contents (filename, data, sizeof(data)); if (len > 1 && data[--len] == '\n') { char *endptr = NULL; double state; @@ -136,12 +140,12 @@ static int thermal_procfs_device_read (const char __attribute__((unused)) *dir, * temperature: 55 C */ - len = snprintf (filename, sizeof (filename), + len = ssnprintf (filename, sizeof (filename), "%s/%s/temperature", dirname_procfs, name); if ((len < 0) || ((size_t) len >= sizeof (filename))) return -1; - len = read_file_contents (filename, data, sizeof(data)); + len = (ssize_t) read_file_contents (filename, data, sizeof(data)); if ((len > 0) && ((size_t) len > sizeof(str_temp)) && (data[--len] == '\n') && (! strncmp(data, str_temp, sizeof(str_temp)-1))) {