diff options
author | Camiel Dobbelaar <camield@cvs.openbsd.org> | 2011-06-27 13:01:52 +0000 |
---|---|---|
committer | Camiel Dobbelaar <camield@cvs.openbsd.org> | 2011-06-27 13:01:52 +0000 |
commit | 96e06de497ab8887feebeb7faabe0727705f265e (patch) | |
tree | 5db1a7551f8f7169d3c5a703f6eb97667964a4b8 /sys/netinet | |
parent | b1e3e844f1a544dd505d61af6799df0965641b34 (diff) |
Mark ARP request broadcasts with M_BCAST in the mbuf flags.
Fixes a case in bridge_output() where ARP requests are not broadcast
on interfaces without the discovery flag.
ok claudio deraadt
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/if_ether.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 8645dbf5e2d..b26476036b4 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_ether.c,v 1.88 2010/07/22 00:41:55 deraadt Exp $ */ +/* $OpenBSD: if_ether.c,v 1.89 2011/06/27 13:01:51 camield Exp $ */ /* $NetBSD: if_ether.c,v 1.31 1996/05/11 12:59:58 mycroft Exp $ */ /* @@ -359,6 +359,7 @@ arprequest(ifp, sip, tip, enaddr) bcopy((caddr_t)tip, (caddr_t)ea->arp_tpa, sizeof(ea->arp_tpa)); sa.sa_family = pseudo_AF_HDRCMPLT; sa.sa_len = sizeof(sa); + m->m_flags |= M_BCAST; (*ifp->if_output)(ifp, m, &sa, (struct rtentry *)0); } @@ -994,6 +995,7 @@ revarprequest(ifp) sizeof(ea->arp_tha)); sa.sa_family = pseudo_AF_HDRCMPLT; sa.sa_len = sizeof(sa); + m->m_flags |= M_BCAST; ifp->if_output(ifp, m, &sa, (struct rtentry *)0); } |