plugin_dispatch_values(&vl);
}
- static void smart_handle_disk_attribute(SkDisk *d,
- const SkSmartAttributeParsedData *a,
- void *userdata) {
- const char *dev = userdata;
+ static void handle_attribute(SkDisk *d, const SkSmartAttributeParsedData *a,
+ void *userdata) {
+ char const *name = userdata;
- value_t values[4];
- value_list_t vl = VALUE_LIST_INIT;
if (!a->current_value_valid || !a->worst_value_valid)
return;
- values[0].gauge = a->current_value;
- values[1].gauge = a->worst_value;
- values[2].gauge = a->threshold_valid ? a->threshold : 0;
- values[3].gauge = a->pretty_value;
+
+ value_list_t vl = VALUE_LIST_INIT;
+ value_t values[] = {
+ {.gauge = a->current_value},
+ {.gauge = a->worst_value},
+ {.gauge = a->threshold_valid ? a->threshold : 0},
+ {.gauge = a->pretty_value},
+ };
vl.values = values;
- vl.values_len = 4;
- sstrncpy(vl.host, hostname_g, sizeof(vl.host));
+ vl.values_len = STATIC_ARRAY_SIZE(values);
sstrncpy(vl.plugin, "smart", sizeof(vl.plugin));
- sstrncpy(vl.plugin_instance, dev, sizeof(vl.plugin_instance));
+ sstrncpy(vl.plugin_instance, name, sizeof(vl.plugin_instance));
sstrncpy(vl.type, "smart_attribute", sizeof(vl.type));
sstrncpy(vl.type_instance, a->name, sizeof(vl.type_instance));