X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fsensors.c;h=33982e061a99fb47d3fc7c22f280599340689586;hp=8f1824d09b0a32f6462dfe64930db0c418e371b5;hb=da11ce02eb202b3e01d3e2d1b40f248a84430973;hpb=877672d20fcf0ed25f5fc5faa8aa3964c622bc27 diff --git a/src/sensors.c b/src/sensors.c index 8f1824d0..33982e06 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; @@ -159,11 +159,6 @@ typedef struct featurelist { 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." #endif static featurelist_t *first_feature = NULL; @@ -176,7 +171,7 @@ static int sensors_snprintf_chip_name(char *buf, size_t buf_size, int status = -1; if (chip->bus == SENSORS_CHIP_NAME_BUS_ISA) { - status = ssnprintf(buf, buf_size, "%s-isa-%04x", chip->prefix, chip->addr); + status = snprintf(buf, buf_size, "%s-isa-%04x", chip->prefix, chip->addr); } else if (chip->bus == SENSORS_CHIP_NAME_BUS_DUMMY) { status = snprintf(buf, buf_size, "%s-%s-%04x", chip->prefix, chip->busname, chip->addr); @@ -185,7 +180,7 @@ static int sensors_snprintf_chip_name(char *buf, size_t buf_size, chip->addr); } - return (status); + return status; } /* int sensors_snprintf_chip_name */ static int sensors_feature_name_to_type(const char *name) { @@ -193,9 +188,9 @@ static int sensors_feature_name_to_type(const char *name) { * it's a one time cost.. */ for (int i = 0; i < known_features_num; i++) if (strcasecmp(known_features[i].label, name) == 0) - return (known_features[i].type); + return known_features[i].type; - return (SENSOR_TYPE_UNKNOWN); + return SENSOR_TYPE_UNKNOWN; } /* int sensors_feature_name_to_type */ #endif @@ -216,23 +211,23 @@ static int sensors_config(const char *key, const char *value) { if (ignorelist_add(sensor_list, value)) { ERROR("sensors plugin: " "Cannot add value to ignorelist."); - return (1); + return 1; } } else if (strcasecmp(key, "IgnoreSelected") == 0) { ignorelist_set_invert(sensor_list, 1); 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; } #endif else { - return (-1); + return -1; } - return (0); + return 0; } static void sensors_free_features(void) { @@ -272,7 +267,7 @@ static int sensors_load_conf(void) { char errbuf[1024]; ERROR("sensors plugin: fopen(%s) failed: %s", conffile, sstrerror(errno, errbuf, sizeof(errbuf))); - return (-1); + return -1; } } @@ -283,7 +278,7 @@ static int sensors_load_conf(void) { if (status != 0) { ERROR("sensors plugin: Cannot initialize sensors. " "Data will not be collected."); - return (-1); + return -1; } #if SENSORS_API_VERSION < 0x400 @@ -353,7 +348,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; @@ -367,6 +362,9 @@ static int sensors_load_conf(void) { if ((feature->type != SENSORS_FEATURE_IN) && (feature->type != SENSORS_FEATURE_FAN) && (feature->type != SENSORS_FEATURE_TEMP) && +#if SENSORS_API_VERSION >= 0x402 + (feature->type != SENSORS_FEATURE_CURR) && +#endif (feature->type != SENSORS_FEATURE_POWER)) { DEBUG("sensors plugin: sensors_load_conf: " "Ignoring feature `%s', " @@ -383,6 +381,9 @@ static int sensors_load_conf(void) { if ((subfeature->type != SENSORS_SUBFEATURE_IN_INPUT) && (subfeature->type != SENSORS_SUBFEATURE_FAN_INPUT) && (subfeature->type != SENSORS_SUBFEATURE_TEMP_INPUT) && +#if SENSORS_API_VERSION >= 0x402 + (subfeature->type != SENSORS_SUBFEATURE_CURR_INPUT) && +#endif (subfeature->type != SENSORS_SUBFEATURE_POWER_INPUT)) continue; @@ -404,23 +405,23 @@ 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(); INFO("sensors plugin: lm_sensors reports no " "features. Data will not be collected."); - return (-1); + return -1; } - return (0); + return 0; } /* int sensors_load_conf */ static int sensors_shutdown(void) { sensors_free_features(); ignorelist_free(sensor_list); - return (0); + return 0; } /* int sensors_shutdown */ static void sensors_submit(const char *plugin_instance, const char *type, @@ -430,8 +431,8 @@ static void sensors_submit(const char *plugin_instance, const char *type, value_list_t vl = VALUE_LIST_INIT; - status = ssnprintf(match_key, sizeof(match_key), "%s/%s-%s", plugin_instance, - type, type_instance); + status = snprintf(match_key, sizeof(match_key), "%s/%s-%s", plugin_instance, + type, type_instance); if (status < 1) return; @@ -454,7 +455,7 @@ static void sensors_submit(const char *plugin_instance, const char *type, static int sensors_read(void) { if (sensors_load_conf() != 0) - return (-1); + return -1; #if SENSORS_API_VERSION < 0x400 for (featurelist_t *fl = first_feature; fl != NULL; fl = fl->next) { @@ -479,7 +480,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; @@ -513,14 +514,18 @@ static int sensors_read(void) { type = "temperature"; else if (fl->feature->type == SENSORS_FEATURE_POWER) type = "power"; +#if SENSORS_API_VERSION >= 0x402 + else if (fl->feature->type == SENSORS_FEATURE_CURR) + type = "current"; +#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); + return 0; } /* int sensors_read */ void module_register(void) {