udp.c: Fix for bug #20503 : IGMP Improvement. Enable to receive a multicast packet on a udp pcb binded on an netif's IP address, and not on "any".

This commit is contained in:
fbernon 2007-08-09 18:34:03 +00:00
parent 7c104c8fbb
commit 118331207b
2 changed files with 7 additions and 0 deletions

View File

@ -256,6 +256,10 @@ HISTORY
++ Bug fixes: ++ Bug fixes:
2007-08-09 Frédéric Bernon, Bill Florac
* udp.c: Fix for bug #20503 : IGMP Improvement. Enable to receive a multicast
packet on a udp pcb binded on an netif's IP address, and not on "any".
2007-08-09 Frédéric Bernon, Bill Florac 2007-08-09 Frédéric Bernon, Bill Florac
* igmp.h, igmp.c, ip.c: Fix minor changes from bug #20503 : IGMP Improvement. * igmp.h, igmp.c, ip.c: Fix minor changes from bug #20503 : IGMP Improvement.
This is mainly on using lookup/lookfor, and some coding styles... This is mainly on using lookup/lookfor, and some coding styles...

View File

@ -154,6 +154,9 @@ udp_input(struct pbuf *p, struct netif *inp)
if ((pcb->local_port == dest) && if ((pcb->local_port == dest) &&
(ip_addr_isany(&pcb->local_ip) || (ip_addr_isany(&pcb->local_ip) ||
ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest)) || ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest)) ||
#if LWIP_IGMP
ip_addr_ismulticast(&(iphdr->dest)) ||
#endif /* LWIP_IGMP */
ip_addr_isbroadcast(&(iphdr->dest), inp))) { ip_addr_isbroadcast(&(iphdr->dest), inp))) {
local_match = 1; local_match = 1;
if ((uncon_pcb == NULL) && if ((uncon_pcb == NULL) &&