diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-07-12 17:31:45 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-07-12 17:37:19 +0200 |
commit | 5b1207f72c67b65a60959945bb4250409bb8460f (patch) | |
tree | 323da596a8f983ec73e1e93931746099c1d88e92 /pimd/pim_igmp.c | |
parent | pimd: Start naive implementation of anysource_forward_stop (diff) | |
download | frr-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.c | 8 |
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; |