summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/ipsd/sbpf.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ipfilter/ipsd/sbpf.c')
-rw-r--r--contrib/ipfilter/ipsd/sbpf.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/contrib/ipfilter/ipsd/sbpf.c b/contrib/ipfilter/ipsd/sbpf.c
index 97bb4ce..457891b 100644
--- a/contrib/ipfilter/ipsd/sbpf.c
+++ b/contrib/ipfilter/ipsd/sbpf.c
@@ -9,6 +9,9 @@
#include <ctype.h>
#include <signal.h>
#include <errno.h>
+#ifdef __NetBSD__
+# include <paths.h>
+#endif
#include <sys/types.h>
#include <sys/param.h>
#include <sys/mbuf.h>
@@ -121,8 +124,18 @@ int tout;
struct bpf_version bv;
struct timeval to;
struct ifreq ifr;
+#ifdef _PATH_BPF
+ char *bpfname = _PATH_BPF;
+ int fd;
+
+ if ((fd = open(bpfname, O_RDWR)) < 0)
+ {
+ fprintf(stderr, "no bpf devices available as /dev/bpfxx\n");
+ return -1;
+ }
+#else
char bpfname[16];
- int fd, i;
+ int fd = -1, i;
for (i = 0; i < 16; i++)
{
@@ -135,6 +148,7 @@ int tout;
fprintf(stderr, "no bpf devices available as /dev/bpfxx\n");
return -1;
}
+#endif
if (ioctl(fd, BIOCVERSION, (caddr_t)&bv) < 0)
{
OpenPOWER on IntegriCloud