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_disc.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_disc.c')
-rw-r--r-- | sys/net/if_disc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/net/if_disc.c b/sys/net/if_disc.c index 9344d65..76fb9ec 100644 --- a/sys/net/if_disc.c +++ b/sys/net/if_disc.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * From: @(#)if_loop.c 8.1 (Berkeley) 6/10/93 - * $Id: if_disc.c,v 1.5 1995/08/30 00:33:17 bde Exp $ + * $Id: if_disc.c,v 1.6 1995/09/09 18:10:21 davidg Exp $ */ /* @@ -123,6 +123,14 @@ dsoutput(ifp, m, dst, rt) panic("dsoutput 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 (dsif.if_bpf) { /* * We need to prepend the address family as |