]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/igmp.c
[NETFILTER]: ctnetlink: remove bogus checks in ICMP protocol at dumping
[linux-2.6-omap-h63xx.git] / net / ipv4 / igmp.c
index c04607b49212ec538499eee7340374427b25379b..34758118c10ca4a791ab80764b003bec60f50707 100644 (file)
@@ -91,6 +91,8 @@
 #include <linux/if_arp.h>
 #include <linux/rtnetlink.h>
 #include <linux/times.h>
+
+#include <net/arp.h>
 #include <net/ip.h>
 #include <net/protocol.h>
 #include <net/route.h>
@@ -897,7 +899,10 @@ int igmp_rcv(struct sk_buff *skb)
                /* Is it our report looped back? */
                if (((struct rtable*)skb->dst)->fl.iif == 0)
                        break;
-               igmp_heard_report(in_dev, ih->group);
+               /* don't rely on MC router hearing unicast reports */
+               if (skb->pkt_type == PACKET_MULTICAST ||
+                   skb->pkt_type == PACKET_BROADCAST)
+                       igmp_heard_report(in_dev, ih->group);
                break;
        case IGMP_PIM:
 #ifdef CONFIG_IP_PIMSM_V1