summaryrefslogtreecommitdiffstats
path: root/sys/net/if_disc.c
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1995-09-22 17:57:48 +0000
committerwollman <wollman@FreeBSD.org>1995-09-22 17:57:48 +0000
commitb4a51c6f1b5daee28cfe20fb546a48032fe2162a (patch)
tree5ad506a8546e1e713cc5fcbf8cf04de5537bc5ca /sys/net/if_disc.c
parent5290fd51dabd7f1f835496a51c1f3adcb0d2fd22 (diff)
downloadFreeBSD-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.c10
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
OpenPOWER on IntegriCloud