On Tue, Jan 26, 2010 at 01:53:40PM +0000, Stuart Henderson wrote: > On 2010/01/26 10:32, Christiano F. Haesbaert wrote: > > On Mon, Jan 25, 2010 at 10:27:42PM -0800, Philip Guenther wrote: > > > So, have you read the commit message that added that code? If you're > > > not sure what version that code appeared in, use "cvs annotate > > > whatever.c" to see when those lines were committed. Then compare that > > > version to the previous version with "cvs diff -r1.N-1 -r1.N > > > whatever.c" to confirm that rev 1.N actually added those lines (and it > > > wasn't just a reformatting or similar). If not, repeat with "cvs > > > annotate -r1.N-1 whatever.c" until you find when the code was added. > > > Then use "cvs log -N -r1.N whatever.c" to see the commit message. > > > Hopefully (tm), the commit message will be clear, or at least point > > > you in the right direction for understanding why it was added. > > > > > > > Hi, again thanks for your help, I didn't think of that, well that > > almost did the trick, here is claudio's message: > > > > -revision 1.9 > > -date: 2007/04/27 09:20:32; author: claudio; state: Exp; > > -lines: +21 -3 > > -Ripd needs a valid route for 224.0.0.9 to work. Instead of forcing > > -users to set multicast_router=YES we inject a 224.0.0.9/32 route into > > -the kernel and remove the route on exit if the insert was > > -successful. With this ripd works out of the box. OK michele@ norby@ > > > > Ok so that save us from "manually" adding the route, and by the > > message it looks like it *needs* it, but I still don't understand why > > it is necessary, if that's not a special case, then any software who > > want' to multicast will at least need to add a route, which would > > require root privilege (ok privilege separation helps). > > By default there is a localhost -reject route for the whole of the > multicast range added by netstart. > > If you wish to enable IPv4 multicast for general use on your system, > set multicast_router=YES or multicast_host=(YES|interface name) in > rc.conf.local. Since different people will need different settings > and many might not want it at all, I think changing the default > would be a mistake (even though I've personally been bitten by > it on more than one occasion when trying to get VLC to listen to > multicast streams on a new machine .. ;-) > > Note that enabling the multicats protocols that spamd and > dhcpd can use does *not* automatically set this. >
Hmm. In a perfect world using IP_MULTICAST_IF should bypass the route lookup in the UDP case. Since it is not needed and the reject route would not trigger. The 224.0.0.9 host route is more a workaround (mainly because only UDP sockets suffer from this problem whereas the raw IP sockets used by ospfd do not show this problem). Hint: Somebody should try to fix this (I will look at the diff). -- :wq Claudio