]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: igmpv3.c was causing prune/join messages to be sent
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 1 Aug 2016 17:06:35 +0000 (13:06 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:04 +0000 (20:26 -0500)
We were erroneously sending a prune *,G immediately followed
by a join *,G under certain situations

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_igmpv3.c

index bf81c8d2c5713b489e9f0872835391f0dccc0a63..79932edb3565773475869c41946f33d84317da90 100644 (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;