diff options
Diffstat (limited to 'pimd/pim_igmp.c')
| -rw-r--r-- | pimd/pim_igmp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c index 063ba6edd2..1ba9bc45a2 100644 --- a/pimd/pim_igmp.c +++ b/pimd/pim_igmp.c @@ -213,15 +213,17 @@ void igmp_source_forward_stop(struct gm_source *source) IGMP_SOURCE_TEST_FORWARDING(source->source_flags)); } + group = source->source_group; + pim_oif = group->interface->info; + /* Prevent IGMP interface from removing multicast route multiple times */ if (!IGMP_SOURCE_TEST_FORWARDING(source->source_flags)) { + tib_sg_proxy_join_prune_check(pim_oif->pim, sg, + group->interface, false); return; } - group = source->source_group; - pim_oif = group->interface->info; - tib_sg_gm_prune(pim_oif->pim, sg, group->interface, &source->source_channel_oil); IGMP_SOURCE_DONT_FORWARDING(source->source_flags); |
