This is the first diff in a series to move base to /dev/bpf. I think
tcpdump is a good starting point, because it is easy to test.

Ok?

natano


Index: privsep_pcap.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/privsep_pcap.c,v
retrieving revision 1.19
diff -u -p -r1.19 privsep_pcap.c
--- privsep_pcap.c      1 Oct 2015 13:18:40 -0000       1.19
+++ privsep_pcap.c      1 May 2016 20:25:19 -0000
@@ -175,20 +175,14 @@ int
 pcap_live(const char *device, int snaplen, int promisc, u_int dlt,
     u_int dirfilt)
 {
-       char            bpf[sizeof "/dev/bpf0000000000"];
-       int             fd, n = 0;
+       int             fd;
        struct ifreq    ifr;
        unsigned        v;
 
        if (device == NULL || snaplen <= 0)
                return (-1);
 
-       do {
-               snprintf(bpf, sizeof(bpf), "/dev/bpf%d", n++);
-               fd = open(bpf, O_RDONLY);
-       } while (fd < 0 && errno == EBUSY);
-
-       if (fd < 0)
+       if ((fd = open("/dev/bpf", O_RDONLY)) == -1)
                return (-1);
 
        v = 32768;      /* XXX this should be a user-accessible hook */
Index: tcpdump.8
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/tcpdump.8,v
retrieving revision 1.89
diff -u -p -r1.89 tcpdump.8
--- tcpdump.8   31 Mar 2016 15:53:25 -0000      1.89
+++ tcpdump.8   1 May 2016 20:25:19 -0000
@@ -44,7 +44,7 @@
 prints out the headers of packets on a network interface that match the boolean
 .Ar expression .
 You must have read access to
-.Pa /dev/bpf* .
+.Pa /dev/bpf .
 .Pp
 The options are as follows:
 .Bl -tag -width "-c count"

Reply via email to