From cf2856f08eb790c45a57dcf53d1d1412a5cdbd76 Mon Sep 17 00:00:00 2001 From: Stefan Rinkes Date: Mon, 25 Apr 2011 16:46:04 +0200 Subject: [PATCH] pf plugin: cleaner error-handling --- src/pf.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/pf.c b/src/pf.c index 33e2d4b9..1c5f3161 100644 --- a/src/pf.c +++ b/src/pf.c @@ -21,19 +21,25 @@ static int pf_init(void); static int pf_read(void); static void submit_counter(const char *, const char *, counter_t); +int pfdev = -1; + int pf_init(void) { struct pf_status status; - if ((dev = open(PF_SOCKET, O_RDONLY)) == -1) { + if ((pfdev = open(PF_SOCKET, O_RDONLY)) == -1) { + warn("unable to open %s", PF_SOCKET); return (-1); } - if (ioctl(dev, DIOCGETSTATUS, &status) == -1) { + + if (ioctl(pfdev, DIOCGETSTATUS, &status) == -1) { + warn("DIOCGETSTATUS: %i", pfdev); + close(pfdev); return (-1); } - close(dev); + close(pfdev); if (!status.running) return (-1); @@ -50,14 +56,19 @@ pf_read(void) char *lnames[] = LCNT_NAMES; char *names[] = { "searches", "inserts", "removals" }; - if ((dev = open(PF_SOCKET, O_RDONLY)) == -1) { + if ((pfdev = open(PF_SOCKET, O_RDONLY)) == -1) { + warn("unable tot open %s", PF_SOCKET); return (-1); } - if (ioctl(dev, DIOCGETSTATUS, &status) == -1) { + + if (ioctl(pfdev, DIOCGETSTATUS, &status) == -1) { + warn("DIOCGETSTATUS: %i", pfdev); + close(pfdev); return (-1); } - close(dev); + close(pfdev); + for (i = 0; i < PFRES_MAX; i++) submit_counter("pf_counters", cnames[i], status.counters[i]); for (i = 0; i < LCNT_MAX; i++) @@ -66,6 +77,7 @@ pf_read(void) submit_counter("pf_state", names[i], status.fcounters[i]); for (i = 0; i < SCNT_MAX; i++) submit_counter("pf_source", names[i], status.scounters[i]); + return (0); } -- 2.30.2