From: Donald Sharp Date: Mon, 1 Aug 2016 17:06:35 +0000 (-0400) Subject: pimd: igmpv3.c was causing prune/join messages to be sent X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~328 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=a459fe85c85e51bf36c10fc5700b6345c904d01d;p=matthieu%2Ffrr.git 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 --- diff --git a/pimd/pim_igmpv3.c b/pimd/pim_igmpv3.c index bf81c8d2c5..79932edb35 100644 --- a/pimd/pim_igmpv3.c +++ b/pimd/pim_igmpv3.c @@ -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;