From a459fe85c85e51bf36c10fc5700b6345c904d01d Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 1 Aug 2016 13:06:35 -0400 Subject: [PATCH] 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 --- pimd/pim_igmpv3.c | 10 ++++++++++ 1 file changed, 10 insertions(+) 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; -- 2.39.5