static void igmp_group_dropped(struct ip_mc_list *im) { del_timer(&im->timer); igmp_send_report(im->interface, im->multiaddr, IGMP_HOST_LEAVE_MESSAGE); ip_mc_filter_del(im->interface, im->multiaddr); /* printk("Left group %lX\n",im->multiaddr);*/ }
extern __inline__ void igmp_group_dropped(struct ip_mc_list *im) { del_timer(&im->timer); /* It seems we have to send Leave Messages to 224.0.0.2 and not to the group itself, to remain RFC 2236 compliant... (jmel) */ igmp_send_report(im->interface, IGMP_ALL_ROUTER, IGMP_HOST_LEAVE_MESSAGE); ip_mc_filter_del(im->interface, im->multiaddr); }
static void igmp_group_dropped(struct ip_mc_list *im) { if (im->loaded) { im->loaded = 0; ip_mc_filter_del(im->interface, im->multiaddr); } #ifdef CONFIG_IP_MULTICAST if (im->multiaddr == IGMP_ALL_HOSTS) return; start_bh_atomic(); igmp_stop_timer(im); end_bh_atomic(); if (im->reporter && !IGMP_V1_SEEN(im->interface)) igmp_send_report(im->interface->dev, im->multiaddr, IGMP_HOST_LEAVE_MESSAGE); #endif }