vl.values = &conntrack;
vl.values_len = 1;
- sstrncpy(vl.host, hostname_g, sizeof(vl.host));
sstrncpy(vl.plugin, "conntrack", sizeof(vl.plugin));
sstrncpy(vl.type, type, sizeof(vl.type));
if (type_instance != NULL)
static int conntrack_read(void) {
value_t conntrack, conntrack_max, conntrack_pct;
- FILE *fh;
- char buffer[64] = {0};
- size_t buffer_len;
- fh = fopen(old_files ? CONNTRACK_FILE_OLD : CONNTRACK_FILE, "r");
- if (fh == NULL)
- return (-1);
-
- if (fgets(buffer, sizeof(buffer), fh) == NULL) {
- fclose(fh);
- return (-1);
+ char const *path = old_files ? CONNTRACK_FILE_OLD : CONNTRACK_FILE;
+ if (parse_value_file(path, &conntrack, DS_TYPE_GAUGE) != 0) {
+ ERROR("conntrack plugin: Reading \"%s\" failed.", path);
+ return -1;
}
- fclose(fh);
- /* strip trailing newline. */
- buffer_len = strlen(buffer);
- while ((buffer_len > 0) && isspace((int)buffer[buffer_len - 1])) {
- buffer[buffer_len - 1] = 0;
- buffer_len--;
+ path = old_files ? CONNTRACK_MAX_FILE_OLD : CONNTRACK_MAX_FILE;
+ if (parse_value_file(path, &conntrack_max, DS_TYPE_GAUGE) != 0) {
+ ERROR("conntrack plugin: Reading \"%s\" failed.", path);
+ return -1;
}
- if (parse_value(buffer, &conntrack, DS_TYPE_GAUGE) != 0)
- return (-1);
+ conntrack_pct.gauge = (conntrack.gauge / conntrack_max.gauge) * 100;
conntrack_submit("conntrack", NULL, conntrack);
-
- fh = fopen(old_files ? CONNTRACK_MAX_FILE_OLD : CONNTRACK_MAX_FILE, "r");
- if (fh == NULL)
- return (-1);
-
- memset(buffer, 0, sizeof(buffer));
- if (fgets(buffer, sizeof(buffer), fh) == NULL) {
- fclose(fh);
- return (-1);
- }
- fclose(fh);
-
- /* strip trailing newline. */
- buffer_len = strlen(buffer);
- while ((buffer_len > 0) && isspace((int)buffer[buffer_len - 1])) {
- buffer[buffer_len - 1] = 0;
- buffer_len--;
- }
-
- if (parse_value(buffer, &conntrack_max, DS_TYPE_GAUGE) != 0)
- return (-1);
-
conntrack_submit("conntrack", "max", conntrack_max);
- conntrack_pct.gauge = (conntrack.gauge / conntrack_max.gauge) * 100;
conntrack_submit("percent", "used", conntrack_pct);
- return (0);
+ return 0;
} /* static int conntrack_read */
void module_register(void) {