This is the mail archive of the cygwin-xfree mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question for Corinna (was Re: Novice Question)


On 01/07/2009 16:42, Corinna Vinschen wrote:
On Jun 29 10:50, Christopher Faylor wrote:
On Mon, Jun 29, 2009 at 12:09:12PM +0100, Jon TURNEY wrote:
Andy wrote:
/opt/wip/cygport-svn/xorg-server/xorg-server-1.6.0-10/src/xorg-server-1.6.0/
os/access.c
(gdb) p *ifr
$1 = {ifa_next = 0x1447798, ifa_name = 0x14474c4
"{B8B51884-C69A-4592-B65D-89ABB3DCF18D}", ifa_flags = 69635,
   ifa_addr = 0x14474f0, ifa_netmask = 0x14475f0, ifa_dstaddr = 0x0, ifa_data
= 0x0}
:-)

It seems that the (new for Cygwin 1.7) getifaddr() function can return
interfaces with IFF_BROADCAST&  IFF_UP set, but no broadcast address, which
the X server assumes never happens
I was going to say that this sounds wrong but I see interfaces on my
linux box which have no broadcast addresses but still have IFF_BROADCAST
set.

Corinna, what do you think?

Thanks for nudging me by PM. I didn't notice this question, sorry.


As for the broadcast address, you *have* to expect that an interface
is broadcast capable and the ifa_broadaddr pointer is NULL.  This
is at least true for all IPv6 entries.  For IPv4 that shouldn't occur
under Cygwin.

The code in question (before I patched it) looks like this:


#if defined(IPv6) && defined(AF_INET6)
	    if (family == FamilyInternet6)
		/* IPv6 doesn't support broadcasting, so we drop out here */
		continue;
#endif
	    if ((ifr->ifa_flags & IFF_BROADCAST) &&
		(ifr->ifa_flags & IFF_UP))
		broad_addr = *ifr->ifa_broadaddr;
	    else
		continue;
	    XdmcpRegisterBroadcastAddress((struct sockaddr_in *)
					  &broad_addr);

Staring at the code a bit, I think this means we have either an IPv4 interface, or an IPv6 interface with a mapped IPv4 address when the broadcast address is looked at.


-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://x.cygwin.com/docs/ FAQ: http://x.cygwin.com/docs/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]