summaryrefslogtreecommitdiffstats
path: root/pimd/pim_igmp.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2016-07-12 17:31:45 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-07-12 17:37:19 +0200
commit5b1207f72c67b65a60959945bb4250409bb8460f (patch)
tree323da596a8f983ec73e1e93931746099c1d88e92 /pimd/pim_igmp.c
parentpimd: Start naive implementation of anysource_forward_stop (diff)
downloadfrr-5b1207f72c67b65a60959945bb4250409bb8460f.tar.xz
frr-5b1207f72c67b65a60959945bb4250409bb8460f.zip
pimd: Stale IGMP groups left behind
When a toin IGMPv3 join is received, the code was always auto creating the igmp group associated with the received packet. The RFC clearly states though that if a INCLUDE is received for a group with 0 sources and we have received nothing the igmpv3 packet should be ignored. Ticket: CM-11260 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_igmp.c')
-rw-r--r--pimd/pim_igmp.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c
index 6df835e25..440d64872 100644
--- a/pimd/pim_igmp.c
+++ b/pimd/pim_igmp.c
@@ -46,9 +46,6 @@
static void group_timer_off(struct igmp_group *group);
-static struct igmp_group *find_group_by_addr(struct igmp_sock *igmp,
- struct in_addr group_addr);
-
static int igmp_sock_open(struct in_addr ifaddr, int ifindex, uint32_t pim_options)
{
int fd;
@@ -1358,8 +1355,9 @@ void igmp_group_timer_on(struct igmp_group *group,
group, interval_msec);
}
-static struct igmp_group *find_group_by_addr(struct igmp_sock *igmp,
- struct in_addr group_addr)
+struct igmp_group *
+find_group_by_addr (struct igmp_sock *igmp,
+ struct in_addr group_addr)
{
struct igmp_group *group;
struct listnode *node;