[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