X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsensors.c;h=9781f322bd1885912539b0c3aa7bba2a88eb9ffb;hb=069796bd76dd1ab0089a64f7c9c2a3c9f1475414;hp=f4ecda5e49e0f12114ea32ccc2260a31789b4ad4;hpb=7f38ca96e3a54a4b02475f857c7d79c6a1257ada;p=collectd.git diff --git a/src/sensors.c b/src/sensors.c index f4ecda5e..9781f322 100644 --- a/src/sensors.c +++ b/src/sensors.c @@ -149,7 +149,7 @@ typedef struct featurelist { static char *conffile = SENSORS_CONF_PATH; /* #endif SENSORS_API_VERSION < 0x400 */ -#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) +#elif (SENSORS_API_VERSION >= 0x400) typedef struct featurelist { const sensors_chip_name *chip; const sensors_feature *feature; @@ -157,16 +157,11 @@ typedef struct featurelist { struct featurelist *next; } featurelist_t; -static char *conffile = NULL; -static _Bool use_labels = 0; -/* #endif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */ - -#else /* if SENSORS_API_VERSION >= 0x500 */ -#error "This version of libsensors is not supported yet. Please report this " \ - "as bug." +static char *conffile; +static bool use_labels; #endif -static featurelist_t *first_feature = NULL; +static featurelist_t *first_feature; static ignorelist_t *sensor_list; #if SENSORS_API_VERSION < 0x400 @@ -223,9 +218,9 @@ static int sensors_config(const char *key, const char *value) { if (IS_TRUE(value)) ignorelist_set_invert(sensor_list, 0); } -#if (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) +#if (SENSORS_API_VERSION >= 0x400) else if (strcasecmp(key, "UseLabels") == 0) { - use_labels = IS_TRUE(value) ? 1 : 0; + use_labels = IS_TRUE(value); } #endif else { @@ -251,7 +246,7 @@ static void sensors_free_features(void) { } static int sensors_load_conf(void) { - static int call_once = 0; + static int call_once; FILE *fh = NULL; featurelist_t *last_feature = NULL; @@ -269,9 +264,7 @@ static int sensors_load_conf(void) { if (conffile != NULL) { fh = fopen(conffile, "r"); if (fh == NULL) { - char errbuf[1024]; - ERROR("sensors plugin: fopen(%s) failed: %s", conffile, - sstrerror(errno, errbuf, sizeof(errbuf))); + ERROR("sensors plugin: fopen(%s) failed: %s", conffile, STRERRNO); return -1; } } @@ -353,7 +346,7 @@ static int sensors_load_conf(void) { } /* while sensors_get_detected_chips */ /* #endif SENSORS_API_VERSION < 0x400 */ -#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) +#elif (SENSORS_API_VERSION >= 0x400) chip_num = 0; while ((chip = sensors_get_detected_chips(NULL, &chip_num)) != NULL) { const sensors_feature *feature; @@ -370,6 +363,9 @@ static int sensors_load_conf(void) { #if SENSORS_API_VERSION >= 0x402 (feature->type != SENSORS_FEATURE_CURR) && #endif +#if SENSORS_API_VERSION >= 0x431 + (feature->type != SENSORS_FEATURE_HUMIDITY) && +#endif (feature->type != SENSORS_FEATURE_POWER)) { DEBUG("sensors plugin: sensors_load_conf: " "Ignoring feature `%s', " @@ -389,6 +385,9 @@ static int sensors_load_conf(void) { #if SENSORS_API_VERSION >= 0x402 (subfeature->type != SENSORS_SUBFEATURE_CURR_INPUT) && #endif +#if SENSORS_API_VERSION >= 0x431 + (subfeature->type != SENSORS_SUBFEATURE_HUMIDITY_INPUT) && +#endif (subfeature->type != SENSORS_SUBFEATURE_POWER_INPUT)) continue; @@ -410,7 +409,7 @@ static int sensors_load_conf(void) { } /* while (subfeature) */ } /* while (feature) */ } /* while (chip) */ -#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */ +#endif /* (SENSORS_API_VERSION >= 0x400) */ if (first_feature == NULL) { sensors_cleanup(); @@ -485,7 +484,7 @@ static int sensors_read(void) { } /* for fl = first_feature .. NULL */ /* #endif SENSORS_API_VERSION < 0x400 */ -#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) +#elif (SENSORS_API_VERSION >= 0x400) for (featurelist_t *fl = first_feature; fl != NULL; fl = fl->next) { double value; int status; @@ -523,12 +522,16 @@ static int sensors_read(void) { else if (fl->feature->type == SENSORS_FEATURE_CURR) type = "current"; #endif +#if SENSORS_API_VERSION >= 0x431 + else if (fl->feature->type == SENSORS_FEATURE_HUMIDITY) + type = "humidity"; +#endif else continue; sensors_submit(plugin_instance, type, type_instance, value); } /* for fl = first_feature .. NULL */ -#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */ +#endif /* (SENSORS_API_VERSION >= 0x400) */ return 0; } /* int sensors_read */