Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <sys/ioctl.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <sys/socket.h>
- #include <net/if.h>
- #include <net/pfvar.h>
- #include <rrd.h>
- #include <err.h>
- #include <stdlib.h>
- int main(void) {
- int dev;
- struct pf_status s;
- char *rrd[4];
- if ((dev = open("/dev/pf", O_RDONLY)) == -1)
- err(1, "open");
- rrd[0] = "update";
- rrd[1] = "/home/spaceinvader/firewall.rrd";
- rrd[3] = NULL;
- while (1) {
- if (ioctl(dev, DIOCGETSTATUS, &s) == -1)
- err(1, "ioctl");
- asprintf(&rrd[2], "N:%llu:%llu:%llu", s.bcounters[0][0], s.bcounters[0][1], s.pcounters[0][0][PF_DROP]);
- rrd_update(3, rrd);
- free(rrd[2]);
- sleep(300);
- }
- }
Add Comment
Please, Sign In to add comment