fixed bug #39145 IGMP membership report for 224.0.0.1

-> ensure that we never send a report for 224.0.0.1
This commit is contained in:
Simon Goldschmidt 2014-02-25 22:21:31 +01:00
parent fbdea8dc71
commit 01ecd3517e
2 changed files with 9 additions and 4 deletions

View File

@ -96,7 +96,10 @@ HISTORY
++ Bugfixes: ++ Bugfixes:
2014-02-22: Simon Goldschmidt (patch by Amir Shalem) 2014-02-25: Simon Goldschmidt
* igmp.c: fixed bug #39145 IGMP membership report for 224.0.0.1
2014-02-22: Simon Goldschmidt (patch by Amir Shalem)
* etharp.c, opt.h: fixed bug #34681 Limit ARP queue length by ARP_QUEUE_LEN (=3) * etharp.c, opt.h: fixed bug #34681 Limit ARP queue length by ARP_QUEUE_LEN (=3)
2014-02-22: Simon Goldschmidt (patch by Amir Shalem) 2014-02-22: Simon Goldschmidt (patch by Amir Shalem)

View File

@ -271,7 +271,7 @@ igmp_report_groups(struct netif *netif)
LWIP_DEBUGF(IGMP_DEBUG, ("igmp_report_groups: sending IGMP reports on if %p\n", netif)); LWIP_DEBUGF(IGMP_DEBUG, ("igmp_report_groups: sending IGMP reports on if %p\n", netif));
while (group != NULL) { while (group != NULL) {
if (group->netif == netif) { if ((group->netif == netif) && (!(ip_addr_cmp(&(group->group_address), &allsystems)))) {
igmp_delaying_member(group, IGMP_JOIN_DELAYING_MEMBER_TMR); igmp_delaying_member(group, IGMP_JOIN_DELAYING_MEMBER_TMR);
} }
group = group->next; group = group->next;
@ -674,8 +674,10 @@ igmp_tmr(void)
static void static void
igmp_timeout(struct igmp_group *group) igmp_timeout(struct igmp_group *group)
{ {
/* If the state is IGMP_GROUP_DELAYING_MEMBER then we send a report for this group */ /* If the state is IGMP_GROUP_DELAYING_MEMBER then we send a report for this group
if (group->group_state == IGMP_GROUP_DELAYING_MEMBER) { (unless it is the allsystems group) */
if ((group->group_state == IGMP_GROUP_DELAYING_MEMBER) &&
(!(ip_addr_cmp(&(group->group_address), &allsystems)))) {
LWIP_DEBUGF(IGMP_DEBUG, ("igmp_timeout: report membership for group with address ")); LWIP_DEBUGF(IGMP_DEBUG, ("igmp_timeout: report membership for group with address "));
ip_addr_debug_print(IGMP_DEBUG, &(group->group_address)); ip_addr_debug_print(IGMP_DEBUG, &(group->group_address));
LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", group->netif)); LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", group->netif));