Allows IP of loopback to be used in automatic router ID selection.

Thanks to Alexander V. Chernikov for the patch.
This commit is contained in:
Ondrej Zajicek 2013-04-16 17:53:22 +02:00
parent 8bd9b930c3
commit cd3b02d198

View file

@ -589,7 +589,7 @@ if_choose_router_id(struct iface_patt *mask, u32 old_id)
WALK_LIST(i, iface_list) WALK_LIST(i, iface_list)
{ {
if (!(i->flags & IF_ADMIN_UP) || if (!(i->flags & IF_ADMIN_UP) ||
(i->flags & (IF_IGNORE | IF_SHUTDOWN))) (i->flags & IF_SHUTDOWN))
continue; continue;
WALK_LIST(a, i->addrs) WALK_LIST(a, i->addrs)
@ -612,6 +612,10 @@ if_choose_router_id(struct iface_patt *mask, u32 old_id)
if (mask && !iface_patt_match(mask, i, a)) if (mask && !iface_patt_match(mask, i, a))
continue; continue;
/* FIXME: This should go away too */
if ((i->flags & IF_IGNORE) && !mask)
continue;
/* No pattern or pattern matched */ /* No pattern or pattern matched */
if (!b || ipa_to_u32(a->ip) < ipa_to_u32(b->ip)) if (!b || ipa_to_u32(a->ip) < ipa_to_u32(b->ip))
b = a; b = a;