From 118331207b8404904184897d81c1ec77fe0fb5c4 Mon Sep 17 00:00:00 2001 From: fbernon Date: Thu, 9 Aug 2007 18:34:03 +0000 Subject: [PATCH] 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". --- CHANGELOG | 4 ++++ src/core/udp.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 96b8657f..af84fc97 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -256,6 +256,10 @@ HISTORY ++ 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 * 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... diff --git a/src/core/udp.c b/src/core/udp.c index e187a52a..8b33ec7c 100644 --- a/src/core/udp.c +++ b/src/core/udp.c @@ -154,6 +154,9 @@ udp_input(struct pbuf *p, struct netif *inp) if ((pcb->local_port == dest) && (ip_addr_isany(&pcb->local_ip) || 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))) { local_match = 1; if ((uncon_pcb == NULL) &&