diff options
author | wollman <wollman@FreeBSD.org> | 1995-09-22 17:57:48 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1995-09-22 17:57:48 +0000 |
commit | b4a51c6f1b5daee28cfe20fb546a48032fe2162a (patch) | |
tree | 5ad506a8546e1e713cc5fcbf8cf04de5537bc5ca /sys/net/if_loop.c | |
parent | 5290fd51dabd7f1f835496a51c1f3adcb0d2fd22 (diff) | |
download | FreeBSD-src-b4a51c6f1b5daee28cfe20fb546a48032fe2162a.zip FreeBSD-src-b4a51c6f1b5daee28cfe20fb546a48032fe2162a.tar.gz |
Fix BPf to generate a header mbuf for writes.
Fix loopback and discard interfaces to understand BPF writes.
(These two from Bill Fenner to fix PR 512.)
Move ifpromisc() from bpf.c to if.c as suggested by comment in BPF.
Send a notice to the log when promiscuous mode is enabled.
Diffstat (limited to 'sys/net/if_loop.c')
-rw-r--r-- | sys/net/if_loop.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index 460ad2f..5bf79ee 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)if_loop.c 8.1 (Berkeley) 6/10/93 - * $Id: if_loop.c,v 1.11 1995/08/30 00:33:18 bde Exp $ + * $Id: if_loop.c,v 1.12 1995/09/09 18:10:22 davidg Exp $ */ /* @@ -126,6 +126,14 @@ looutput(ifp, m, dst, rt) panic("looutput no HDR"); ifp->if_lastchange = time; #if NBPFILTER > 0 + /* BPF write needs to be handled specially */ + if (dst->sa_family == AF_UNSPEC) { + dst->sa_family = *(mtod(m, int *)); + m->m_len -= sizeof(int); + m->m_pkthdr.len -= sizeof(int); + m->m_data += sizeof(int); + } + if (ifp->if_bpf) { /* * We need to prepend the address family as |