? os/Makefile ? os/Makefile.dep Index: os/access.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/os/access.c,v retrieving revision 1.2 diff -u -r1.2 access.c --- os/access.c 23 Apr 2004 19:54:28 -0000 1.2 +++ os/access.c 21 Jun 2004 14:13:28 -0000 @@ -456,14 +456,24 @@ continue; /* - * ignore 'localhost' entries as they're not useful - * on the other end of the wire + * Ignore 'localhost' entries as they're not useful + * on the other end of the wire. */ if (len == 4 && addr[0] == 127 && addr[1] == 0 && addr[2] == 0 && addr[3] == 1) continue; + /* + * Ignore '0.0.0.0' entries as they are + * returned by some OSes for unconfigured NICs but they are + * not useful on the other end of the wire. + */ + if (len == 4 && + addr[0] == 0 && addr[1] == 0 && + addr[2] == 0 && addr[3] == 0) + continue; + XdmcpRegisterConnection (family, (char *)addr, len); @@ -588,12 +598,16 @@ #ifdef XDMCP /* * If this is an Internet Address, but not the localhost - * address (127.0.0.1), register it. + * address (127.0.0.1), nor the bogus address (0.0.0.0), + * register it. */ if (family == FamilyInternet && - !(len == 4 && addr[0] == 127 && addr[1] == 0 && - addr[2] == 0 && addr[3] == 1) - ) + !(len == 4 && + ((addr[0] == 127 && addr[1] == 0 && + addr[2] == 0 && addr[3] == 1) || + (addr[0] == 0 && addr[1] == 0 && + addr[2] == 0 && addr[3] == 0))) + ) { XdmcpRegisterConnection (family, (char *)addr, len); broad_addr = *inetaddr; @@ -857,6 +871,16 @@ continue; #endif + /* + * Ignore '0.0.0.0' entries as they are + * returned by some OSes for unconfigured NICs but they are + * not useful on the other end of the wire. + */ + if (len == 4 && + addr[0] == 0 && addr[1] == 0 && + addr[2] == 0 && addr[3] == 0) + continue; + XdmcpRegisterConnection (family, (char *)addr, len); #if defined(IPv6) && defined(AF_INET6) @@ -979,6 +1003,7 @@ #endif ) continue; + /* * ignore 'localhost' entries as they're not useful * on the other end of the wire @@ -990,6 +1015,16 @@ addr[0] == 127 && addr[1] == 0 && addr[2] == 0 && addr[3] == 1) continue; + + /* + * Ignore '0.0.0.0' entries as they are + * returned by some OSes for unconfigured NICs but they are + * not useful on the other end of the wire. + */ + if (len == 4 && + addr[0] == 0 && addr[1] == 0 && + addr[2] == 0 && addr[3] == 0) + continue; #if defined(IPv6) && defined(AF_INET6) else if (family == FamilyInternet6 && IN6_IS_ADDR_LOOPBACK((struct in6_addr *)addr))