You need to join the multicast group on the interface you want to receive it. If you're setting both imr_address and imr_index to 0, you haven't specified an interface.
Instead of setting imr_ifindex to 0, try setting it like this: imr.imr_ifindex = if_nametoindex("eth0"); (or whatever interface you need). You can verify that you've joined the group on the correct interface with "netstat -g", also. Make sure that the interface field is correct for the group you want. And because I can't resist mentioning it, "inet_aton" is deprecated-- suggest inet_pton() with appropriate arguments and return value checking instead. There was a bug fix where the sense of promiscuous mode was backwards for multicasting, which is probably why it was accidently (and incorrectly) working in earlier kernels. If that doesn't do it for you, let me know; better if you can post the full code (or even better, the smallest subset that demonstrates the problem). +-DLS -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html