/*
* Copyright (c) 2010 Pierre-Yves Ritschard <pyr@openbsd.org>
+ * Copyright (c) 2011 Stefan Rinkes <stefan.rinkes@gmail.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
+#include <unistd.h>
#ifndef TEST
#include "collectd.h"
+#include "common.h"
#include "plugin.h"
+#include "configfile.h"
#else
+#include <err.h>
typedef u_int64_t counter_t;
#endif
#define PF_SOCKET "/dev/pf"
struct pfdata {
- int pd_dev;
+ int pd_dev;
};
static struct pfdata pd;
-static int pf_init(void);
-static int pf_read(void);
-static void submit_counter(const char *, const char *, counter_t);
+static int pf_init(void);
+static int pf_read(void);
+static void submit_counter(const char *, const char *, counter_t);
void
submit_counter(const char *type, const char *inst, counter_t val)
value_t values[1];
value_list_t vl = VALUE_LIST_INIT;
- values[0].counter = val;
+ values[0].gauge = val;
+
vl.values = values;
vl.values_len = 1;
-
- strlcpy(vl.host, hostname_g, sizeof(vl.host));
- strlcpy(vl.plugin, "pf", sizeof(vl.plugin));
- strlcpy(vl.type, type, sizeof(vl.type));
- strlcpy(vl.type_instance, inst, sizeof(vl.type_instance));
+ sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+ sstrncpy (vl.plugin, "pf", sizeof (vl.plugin));
+ sstrncpy (vl.type, type, sizeof(vl.type));
+ sstrncpy (vl.type_instance, inst, sizeof(vl.type_instance));
plugin_dispatch_values(&vl);
#else
printf("%s.%s: %lld\n", type, inst, val);
struct pf_status status;
memset(&pd, '\0', sizeof(pd));
-
+
if ((pd.pd_dev = open(PF_SOCKET, O_RDWR)) == -1) {
return (-1);
}
if (ioctl(pd.pd_dev, DIOCGETSTATUS, &status) == -1) {
return (-1);
}
- close(pd.pd_dev);
+
+ close(pd.pd_dev);
if (!status.running)
return (-1);
-
+
return (0);
}
int
pf_read(void)
{
- int i;
- struct pf_status status;
+ int i;
+ struct pf_status status;
- char *cnames[] = PFRES_NAMES;
- char *lnames[] = LCNT_NAMES;
- char *names[] = { "searches", "inserts", "removals" };
+ char *cnames[] = PFRES_NAMES;
+ char *lnames[] = LCNT_NAMES;
+ char *names[] = { "searches", "inserts", "removals" };
if ((pd.pd_dev = open(PF_SOCKET, O_RDWR)) == -1) {
return (-1);
if (ioctl(pd.pd_dev, DIOCGETSTATUS, &status) == -1) {
return (-1);
}
- close(pd.pd_dev);
+
+ close(pd.pd_dev);
for (i = 0; i < PFRES_MAX; i++)
submit_counter("pf_counters", cnames[i], status.counters[i]);
for (i = 0; i < LCNT_MAX; i++)
plugin_register_init("pf", pf_init);
plugin_register_read("pf", pf_read);
}
-#endif
\ No newline at end of file
+#endif
+