On 3 June 2014 09:18, Martin Pieuchot <mpieuc...@nolizard.org> wrote: > On 02/06/14(Mon) 15:45, Martin Pieuchot wrote: >> This diff is similar to the one that has been committed to handle the >> SOCK_RAW binding. I'd like to stop using in_iawithaddr() *and* >> in_broadcast(). Since these functions are just doing an iteration on >> all the addresses present in the RB-tree (or equivalent), let's use >> ifa_ifwithaddr() instead. >> >> This diff should not introduce any behavior change concerning SOCK_DGRAM >> and binding to multicast addresses. > > As pointed out by jca@ this diff breaks on loopback. This is because > the loopback IPv4 addresses are abusing the dstaddr field to be able to > create a route to their address. Hopefully this hack can be removed > once the local route diff is in, but in the meantime let's use the less > intuitive but equivalent idiom: > > sin->sin_addr.s_addr != ia->ia_addr.s_addr > > Update diff below, is this one ok? >
OK