[Xorp-cvs] XORP cvs commit: xorp/fea

Bruce Simpson bms@icir.org
Tue, 14 Mar 2006 13:16:13 GMT


CVSROOT:	/usr/local/www/data/cvs
Module name:	xorp
Changes by:	bms@xorpc.icir.org	2006-03-14 13:16:13 UTC

XORP CVS repository


Modified files:
	fea           rawsock.cc 

Log message:
	Resolve a critical problem with multicast membership on raw
	sockets for the Microsoft Windows Server port of XORP 1.2.
	
	On Windows, according to the Winsock documentation, it is required
	that a raw socket be bound to an interface before it may be joined
	to a multicast group. This however is problematic because the FEA
	raw socket wrapper assumes that a single raw socket may be used to
	transmit and/or receive on multiple interfaces (this is the UNIX
	behaviour).
	
	After consultation with Microsoft it appears that a bind() to
	INADDR_ANY may be used to allow the IGMP joins via setsockopt() to
	work. This was verified with Ethereal in a VMware virtual machine
	running XORP and using OpenVPN/VMware interfaces.
	
	Until the code is taught to ignore the error, a log message of the
	following form may be seen when the OSPF protocol is used under Windows:
	%%%
	[ 2006/03/14 05:49:13 WARNING c:\xorp-1.2\fea\xorp_fea.exe FEA ] bind() failed:
	An invalid argument was supplied.
	%%%
	
	Approved by:    atanu (implicitly)
	Submitted by:   pavlin
	Bugzilla ID:    http://www.xorp.org/bugzilla/show_bug.cgi?id=534

Revision  Changes                             Path
1.16      +5 -4;  commitid: 5ea4416c19d7ea6;  xorp/fea/rawsock.cc