Neil Horman wrote:
find the multicast in the socket's list.
Sorry, but I don't buy it. What we have is essentially "backward-brokeness".
Looking at BSD, which was the root of the original brokeness, they have it fixed.
The code will skip sockets that are not members of a particular group. So, we
are trying really hard to stay bug-for-bug compatible with old implementations.
Let's look at it the other way. What is broken if we actually filter based on the
socket group membership? The only applications that will be impacted are ones that
do not join groups themselves and expect to get multicast traffic. Such applications
are broken to start with.
We already do group membership check for the socket. We simply incorrectly determine
that any socket that doesn't list a group.
What's worse is that if you have a socket that doesn't care about any mulicast
destinations (never did an ADD_MEMBERSHIP), it will still get multicast traffic if
it bound to that port.
We need to take into account the socket's multicast group list.
-vlad
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html