summaryrefslogtreecommitdiffstats
path: root/sys/net/bpf.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-09-18 19:48:59 +0000
committerphk <phk@FreeBSD.org>2002-09-18 19:48:59 +0000
commitbf65d0d45904f56cd643d093b534bf0b7515386c (patch)
tree9ff7e410acdaaf83741797ce969cbd963ebfa1cf /sys/net/bpf.c
parent63d87674c83d54fccca1aacdd2cb1c827796d834 (diff)
downloadFreeBSD-src-bf65d0d45904f56cd643d093b534bf0b7515386c.zip
FreeBSD-src-bf65d0d45904f56cd643d093b534bf0b7515386c.tar.gz
Use m_length() instead of home-rolled.
In bpf_mtap(), if the entire packet is in one mbuf, call bpf_tap() instead since it is a tad faster. Sponsored by: http://www.babeltech.dk/
Diffstat (limited to 'sys/net/bpf.c')
-rw-r--r--sys/net/bpf.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/net/bpf.c b/sys/net/bpf.c
index 1751e03..f1943a4 100644
--- a/sys/net/bpf.c
+++ b/sys/net/bpf.c
@@ -1123,11 +1123,10 @@ bpf_mtap(ifp, m)
struct bpf_if *bp = ifp->if_bpf;
struct bpf_d *d;
u_int pktlen, slen;
- struct mbuf *m0;
- pktlen = 0;
- for (m0 = m; m0 != 0; m0 = m0->m_next)
- pktlen += m0->m_len;
+ pktlen = m_length(m, NULL);
+ if (pktlen == m->m_len)
+ return(bpf_tap(ifp, mtod(m, u_char *), pktlen));
BPFIF_LOCK(bp);
for (d = bp->bif_dlist; d != 0; d = d->bd_next) {
OpenPOWER on IntegriCloud