Code

perl plugin: Renamed and documented "RegisterLegacyFlush" option.
[collectd.git] / src / pf.c
index 0fff6720706966c3ab9c351eedee0a23e60c23f1..d7a5a15cff11b4cd3d2baf07297161fcc56867f3 100644 (file)
--- a/src/pf.c
+++ b/src/pf.c
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2010 Pierre-Yves Ritschard <pyr@openbsd.org>
- * Copyright (c) 2011 Stefan Rinkes <stefan.rinkes@gmail.org>
+ * Copyright (c) 2010 Pierre-Yves Ritschard
+ * Copyright (c) 2011 Stefan Rinkes
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Authors:
+ *   Pierre-Yves Ritschard <pyr at openbsd.org>
+ *   Stefan Rinkes <stefan.rinkes at gmail.org>
  */
 
 #include "collectd.h"
+
 #include "plugin.h"
 #include "common.h"
 
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <net/if.h>
+#if HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
+#if HAVE_NET_IF_H
+# include <net/if.h>
+#endif
+#if HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+
 #include <net/pfvar.h>
-#include <paths.h>
-#include <err.h>
-#include <pwd.h>
+
+#ifndef FCNT_NAMES
+# if FCNT_MAX != 3
+#  error "Unexpected value for FCNT_MAX"
+# endif
+# define FCNT_NAMES {"search", "insert", "removals", NULL};
+#endif
+
+#ifndef SCNT_NAMES
+# if SCNT_MAX != 3
+#  error "Unexpected value for SCNT_MAX"
+# endif
+# define SCNT_NAMES {"search", "insert", "removals", NULL};
+#endif
 
 static char const *pf_reasons[PFRES_MAX+1] = PFRES_NAMES;
 static char const *pf_lcounters[LCNT_MAX+1] = LCNT_NAMES;
 static char const *pf_fcounters[FCNT_MAX+1] = FCNT_NAMES;
-static char const *pf_scounters[FCNT_MAX+1] = FCNT_NAMES;
+static char const *pf_scounters[SCNT_MAX+1] = SCNT_NAMES;
 
 static char const *pf_device = "/dev/pf";
 
@@ -60,7 +83,6 @@ static int pf_read (void)
        struct pf_status state;
        int fd;
        int status;
-       int i;
 
        fd = open (pf_device, O_RDONLY);
        if (fd < 0)
@@ -72,7 +94,6 @@ static int pf_read (void)
                return (-1);
        }
 
-       memset (&state, 0, sizeof (state));
        status = ioctl (fd, DIOCGETSTATUS, &state);
        if (status != 0)
        {
@@ -84,7 +105,6 @@ static int pf_read (void)
        }
 
        close (fd);
-       fd = -1;
 
        if (!state.running)
        {
@@ -92,16 +112,16 @@ static int pf_read (void)
                return (-1);
        }
 
-       for (i = 0; i < PFRES_MAX; i++)
+       for (int i = 0; i < PFRES_MAX; i++)
                pf_submit ("pf_counters", pf_reasons[i], state.counters[i],
                                /* is gauge = */ 0);
-       for (i = 0; i < LCNT_MAX; i++)
+       for (int i = 0; i < LCNT_MAX; i++)
                pf_submit ("pf_limits", pf_lcounters[i], state.lcounters[i],
                                /* is gauge = */ 0);
-       for (i = 0; i < FCNT_MAX; i++)
+       for (int i = 0; i < FCNT_MAX; i++)
                pf_submit ("pf_state", pf_fcounters[i], state.fcounters[i],
                                /* is gauge = */ 0);
-       for (i = 0; i < SCNT_MAX; i++)
+       for (int i = 0; i < SCNT_MAX; i++)
                pf_submit ("pf_source", pf_scounters[i], state.scounters[i],
                                /* is gauge = */ 0);