diff options
author | phk <phk@FreeBSD.org> | 2002-09-18 19:48:59 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-09-18 19:48:59 +0000 |
commit | bf65d0d45904f56cd643d093b534bf0b7515386c (patch) | |
tree | 9ff7e410acdaaf83741797ce969cbd963ebfa1cf /sys/net | |
parent | 63d87674c83d54fccca1aacdd2cb1c827796d834 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/net/bpf.c | 7 |
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) { |