Code Rewriting (nothing new) and asking I seriously wonder if 'that' is good in sys/net/if_bridge.c if (flags == 0) goto return_action;
Because if i m not wrong it could be rewritten this way (diff) ---------------------------------------------------------------------------------------------------------------------- Index: sys/net/if_bridge.c =================================================================== RCS file: /cvs/src/sys/net/if_bridge.c,v retrieving revision 1.193 diff -u -r1.193 if_bridge.c --- sys/net/if_bridge.c 4 Jul 2011 06:54:49 -0000 1.193 +++ sys/net/if_bridge.c 29 Jun 2012 19:05:19 -0000 @@ -2208,29 +2208,17 @@ bridge_filterrule(struct brl_head *h, struct ether_header *eh, struct mbuf *m) { struct brl_node *n; - u_int8_t flags; SIMPLEQ_FOREACH(n, h, brl_next) { - flags = n->brl_flags & (BRL_FLAG_SRCVALID|BRL_FLAG_DSTVALID); - if (flags == 0) - goto return_action; - if (flags == (BRL_FLAG_SRCVALID|BRL_FLAG_DSTVALID)) { + if ( n->brl_flags & BRL_FLAG_SRCVALID ) { if (bcmp(eh->ether_shost, &n->brl_src, ETHER_ADDR_LEN)) - continue; - if (bcmp(eh->ether_dhost, &n->brl_dst, ETHER_ADDR_LEN)) - continue; - goto return_action; + continue; } - if (flags == BRL_FLAG_SRCVALID) { - if (bcmp(eh->ether_shost, &n->brl_src, ETHER_ADDR_LEN)) + if (n->brl_flags & BRL_FLAG_DSTVALID) { + if (bcmp(eh->ether_dhost, &n->brl_dst, ETHER_ADDR_LEN)) continue; - goto return_action; - } - if (flags == BRL_FLAG_DSTVALID) { - if (bcmp(eh->ether_dhost, &n->brl_dst, ETHER_ADDR_LEN)) - continue; - goto return_action; } + goto return_action; } return (BRL_ACTION_PASS); ------------------------------------------------------------------------------------------------------------------------ 2012/6/29 sven falempin <sven.falem...@gmail.com> > 2012/6/29 Henning Brauer <lists-openbsdt...@bsws.de> > >> * Mike Belopuhov <m...@crypt.org.ru> [2012-06-29 13:46]: >> > On Fri, Jun 29, 2012 at 1:36 PM, Henning Brauer >> > <lists-openbsdt...@bsws.de> wrote: >> > > now it's very unclear what your actual problem is - the struct is >> > > called ifbreq and used in a number of places, most notably of course >> > > the ioctls. >> > he's trying to add patterns to the mac address matching code >> >> got that much ;) >> >> > and pretends to be done with the homework (: >> >> well... let's see wether we'll get a diff. >> >> > is there a theory that '&' is more time consuming than ' ==' > because the flag use is weard > > Must .. compile ... all .. kernel .... :( (Am i right ?) > > >> -- >> Henning Brauer, h...@bsws.de, henn...@openbsd.org >> BS Web Services, http://bsws.de, Full-Service ISP >> Secure Hosting, Mail and DNS Services. Dedicated Servers, Root to Fully >> Managed >> Henning Brauer Consulting, http://henningbrauer.com/ >> >> > > > -- > > --------------------------------------------------------------------------------------------------------------------- > () ascii ribbon campaign - against html e-mail > /\ > > -- --------------------------------------------------------------------------------------------------------------------- () ascii ribbon campaign - against html e-mail /\