Routing tables list iteration should use explicit node struct position
This commit is contained in:
parent
7a74ad5a61
commit
4635314cef
2 changed files with 8 additions and 4 deletions
|
@ -1741,8 +1741,9 @@ void
|
|||
rt_dump_all(void)
|
||||
{
|
||||
rtable *t;
|
||||
node *n;
|
||||
|
||||
WALK_LIST(t, routing_tables)
|
||||
WALK_LIST2(t, n, routing_tables, n)
|
||||
rt_dump(t);
|
||||
}
|
||||
|
||||
|
|
|
@ -224,12 +224,15 @@ mrt_next_table_(rtable *tab, rtable *tab_ptr, const char *pattern)
|
|||
return !tab ? tab_ptr : NULL;
|
||||
|
||||
/* Walk routing_tables list, starting after tab (if non-NULL) */
|
||||
for (tab = !tab ? HEAD(routing_tables) : NODE_NEXT(tab);
|
||||
NODE_VALID(tab);
|
||||
tab = NODE_NEXT(tab))
|
||||
for (node *tn = tab ? tab->n.next : HEAD(routing_tables);
|
||||
NODE_VALID(tn);
|
||||
tn = tn->next)
|
||||
{
|
||||
tab = SKIP_BACK(struct rtable, n, tn);
|
||||
if (patmatch(pattern, tab->name) &&
|
||||
((tab->addr_type == NET_IP4) || (tab->addr_type == NET_IP6)))
|
||||
return tab;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue