Small bridge(4) fix

2015-05-15 Thread Martin Pieuchot
If we change the rcvif pointer of a packet we need to run if_input()
again otherwise we might skip the handlers on the new interface.

Ultimately it would be nice to only assign rcvif in  if_input(), but
that's for another diff.

This fix one case I left out in my previous conversion, ok?

Index: net/if_bridge.c
===
RCS file: /cvs/src/sys/net/if_bridge.c,v
retrieving revision 1.238
diff -u -p -r1.238 if_bridge.c
--- net/if_bridge.c 15 May 2015 10:15:13 -  1.238
+++ net/if_bridge.c 15 May 2015 10:50:32 -
@@ -1478,12 +1478,9 @@ bridge_dispatch(struct bridge_iflist *if
 
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



Re: Small bridge(4) fix

2015-05-15 Thread mxb
No regression on my side.

//mxb

 On 15 maj 2015, at 12:54, Martin Pieuchot m...@openbsd.org wrote:
 
 If we change the rcvif pointer of a packet we need to run if_input()
 again otherwise we might skip the handlers on the new interface.
 
 Ultimately it would be nice to only assign rcvif in  if_input(), but
 that's for another diff.
 
 This fix one case I left out in my previous conversion, ok?
 
 Index: net/if_bridge.c
 ===
 RCS file: /cvs/src/sys/net/if_bridge.c,v
 retrieving revision 1.238
 diff -u -p -r1.238 if_bridge.c
 --- net/if_bridge.c   15 May 2015 10:15:13 -  1.238
 +++ net/if_bridge.c   15 May 2015 10:50:32 -
 @@ -1478,12 +1478,9 @@ bridge_dispatch(struct bridge_iflist *if
 
   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