summaryrefslogtreecommitdiff
path: root/contrib/tcpdump
diff options
context:
space:
mode:
authorLuigi Rizzo <luigi@FreeBSD.org>2014-10-02 21:34:52 +0000
committerLuigi Rizzo <luigi@FreeBSD.org>2014-10-02 21:34:52 +0000
commit884c0e111247f770f120aca7e52e0fa190f04c70 (patch)
tree84e8c67008f8ecda7e6d58e1e3ccc1712a0208a7 /contrib/tcpdump
parent7aa1071e4819e27b5ede170bf692f1787f7f2286 (diff)
downloadsrc-test-884c0e111247f770f120aca7e52e0fa190f04c70.tar.gz
src-test-884c0e111247f770f120aca7e52e0fa190f04c70.zip
add CAP_EVENT for the libpcap device so we will be able to use
pcap--netmap which does poll() on the file descriptor MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=272451
Diffstat (limited to 'contrib/tcpdump')
-rw-r--r--contrib/tcpdump/tcpdump.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/contrib/tcpdump/tcpdump.c b/contrib/tcpdump/tcpdump.c
index b2124a65aa154..af34f88f82244 100644
--- a/contrib/tcpdump/tcpdump.c
+++ b/contrib/tcpdump/tcpdump.c
@@ -1533,7 +1533,12 @@ main(int argc, char **argv)
if (RFileName == NULL && VFileName == NULL) {
static const unsigned long cmds[] = { BIOCGSTATS };
- cap_rights_init(&rights, CAP_IOCTL, CAP_READ);
+ /*
+ * the various libpcap devices use a combination of
+ * read (bpf), ioctl (bpf, netmap), poll (netmap)
+ * so we add the relevant access rights.
+ */
+ cap_rights_init(&rights, CAP_IOCTL, CAP_READ, CAP_EVENT);
if (cap_rights_limit(pcap_fileno(pd), &rights) < 0 &&
errno != ENOSYS) {
error("unable to limit pcap descriptor");