On Fri, 22 May 2015 07:54:08 -0700
Donald Sharp <[email protected]> wrote:
> >
> >
> > - if (is_default (p))
> > - {
> > - if (client->redist_default || client->redist[rib->type])
> > - {
> > - if (p->family == AF_INET)
> > - zsend_route_multipath (ZEBRA_IPV4_ROUTE_ADD,
> > client, p, rib);
> > -#ifdef HAVE_IPV6
> > - if (p->family == AF_INET6)
> > - zsend_route_multipath (ZEBRA_IPV6_ROUTE_ADD,
> > client, p, rib);
> > -#endif /* HAVE_IPV6 */
> > - }
> > - }
> > - else if (client->redist[rib->type])
> > + if ((is_default (p) && client->redist_default)
> > + || client->redist[rib->type])
> >
>
> Shouldn't this be:
>
> if ( (is_default (p) && ( client->redist_default ||
> cclient->redist[rib->type]))
Certainly not this. Otherwise only default route would ever by
announced out.
> ....
>
> The comment stands for both changes
I think my code is right.
The original code is:
if (is_default (p)) {
if (client->redist_default || client->redist[rib->type])
} else if (client->redist[rib->type])
Which is equivalent of:
(is_default (p) && (client->redist_default || client->redist[rib->type]) )
|| (client->redist[rib->type])
This simplifies to:
(is_default (p) && client->redist_default) || client->redist[rib->type]
Or you see a flaw in this logic?
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev