pimd: Don't double include Source

When we are adding to a J/P Agg list, don't
double add the source.

Ticket: CM-15189
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-03-08 07:50:55 -05:00
parent fc9d070da4
commit f849df457e

View file

@ -170,7 +170,7 @@ pim_jp_agg_add_group (struct list *group, struct pim_upstream *up, bool is_join)
{
struct listnode *node, *nnode;
struct pim_jp_agg_group *jag = NULL;
struct pim_jp_sources *js;
struct pim_jp_sources *js = NULL;
for (ALL_LIST_ELEMENTS(group, node, nnode, jag))
{
@ -188,11 +188,20 @@ pim_jp_agg_add_group (struct list *group, struct pim_upstream *up, bool is_join)
listnode_add (group, jag);
}
for (ALL_LIST_ELEMENTS(jag->sources, node, nnode, js))
{
if (js->up->sg.src.s_addr == up->sg.src.s_addr)
break;
}
if (!js)
{
js = XCALLOC(MTYPE_PIM_JP_AGG_SOURCE, sizeof (struct pim_jp_sources));
js->up = up;
js->is_join = is_join;
listnode_add (jag->sources, js);
}
js->is_join = is_join;
}
void