From 6bf2acf1dc5bb584d6d431d05a7e7c8943e1e374 Mon Sep 17 00:00:00 2001 From: mpi Date: Mon, 18 May 2015 11:43:57 +0000 Subject: [PATCH] Do not change "rcvif" without goint through if_input() again otherwise the handlers on the new interface won't be executed. Tested by < mxb AT alumni.chalmers DOT se> ok dlg@ --- sys/net/if_bridge.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 44aeb85ad25..637dea8d378 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_bridge.c,v 1.238 2015/05/15 10:15:13 mpi Exp $ */ +/* $OpenBSD: if_bridge.c,v 1.239 2015/05/18 11:43:57 mpi Exp $ */ /* * Copyright (c) 1999, 2000 Jason L. Wright (jason@thought.net) @@ -1478,12 +1478,9 @@ bridge_dispatch(struct bridge_iflist *ifl, struct ifnet *ifp, struct mbuf *m) m->m_pkthdr.rcvif = ifl->ifp; m->m_pkthdr.ph_rtableid = ifl->ifp->if_rdomain; - if (ifp->if_type == IFT_GIF) { - m->m_flags |= M_PROTO1; - ether_input_mbuf(ifl->ifp, m); - m = NULL; - } - return (m); + m->m_flags |= M_PROTO1; + ether_input_mbuf(ifl->ifp, m); + return (NULL); } if (bcmp(ac->ac_enaddr, eh->ether_shost, ETHER_ADDR_LEN) == 0 #if NCARP > 0 -- 2.20.1