pimd: igmpv3.c was causing prune/join messages to be sent

We were erroneously sending a prune *,G immediately followed
by a join *,G under certain situations

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2016-08-01 13:06:35 -04:00
parent 3667b0bcf6
commit a459fe85c8

View file

@ -933,6 +933,16 @@ static void toex_excl(struct igmp_group *group,
/* clear off SEND flag from all known sources (X,Y) */
source_clear_send_flag(group->group_source_list);
if (num_sources == 0)
{
struct igmp_source *source;
struct in_addr any = { .s_addr = INADDR_ANY };
source = igmp_find_source_by_addr (group, any);
if (source)
IGMP_SOURCE_DONT_DELETE(source->source_flags);
}
/* scan received sources (A) */
for (i = 0; i < num_sources; ++i) {
struct igmp_source *source;