*/
static int sensor_extended_naming = 0;
-#ifdef HAVE_LIBSENSORS
+#if SENSORS_HAVE_READ
typedef struct featurelist
{
const sensors_chip_name *chip;
} featurelist_t;
featurelist_t *first_feature = NULL;
-#endif /* defined (HAVE_LIBSENSORS) */
+#endif /* if SENSORS_HAVE_READ */
static int sensors_config (char *key, char *value)
{
static void collectd_sensors_init (void)
{
-#ifdef HAVE_LIBSENSORS
+#if SENSORS_HAVE_READ
FILE *fh;
featurelist_t *last_feature = NULL;
featurelist_t *new_feature;
if (first_feature == NULL)
sensors_cleanup ();
-#endif /* defined(HAVE_LIBSENSORS) */
+#endif /* if SENSORS_HAVE_READ */
return;
}
+static void sensors_shutdown (void)
+{
+ featurelist_t *thisft = first_feature;
+ featurelist_t *nextft;
+
+ ignorelist_free (sensor_list);
+
+#if SENSORS_HAVE_READ
+ while (thisft != NULL)
+ {
+ nextft = thisft->next;
+ sfree (thisft);
+ thisft = nextft;
+ }
+
+ sensors_cleanup ();
+#endif /* if SENSORS_HAVE_READ */
+}
+
static void sensors_voltage_write (char *host, char *inst, char *val)
{
char file[BUFSIZE];
{
plugin_register (MODULE_NAME, collectd_sensors_init, sensors_read, sensors_write);
plugin_register (MODULE_NAME_VOLTAGE, NULL, NULL, sensors_voltage_write);
+ plugin_register_shutdown (MODULE_NAME, sensors_shutdown);
cf_register (MODULE_NAME, sensors_config, config_keys, config_keys_num);
}