changeset 4036:32030ea30793 draft

(svn r5295) Handle a quirk in the Windows interface detection code and fix a typo in r5293 (thanks to Darkvater for testing)
author tron <tron@openttd.org>
date Sat, 17 Jun 2006 12:11:17 +0000
parents 7ac6b445dab9
children 3967a7cbcead
files network.c
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/network.c
+++ b/network.c
@@ -399,10 +399,16 @@
 		return;
 	}
 
-	// Now walk through all IPs and list them
+	i = 0;
 	for (j = 0; j < len / sizeof(*ifo); j++) {
+		if (ifo[j].iiFlags & IFF_LOOPBACK) continue;
 		if (!(ifo[j].iiFlags & IFF_BROADCAST)) continue;
-		_broadcast_list[i++] = ifo[j].iiBroadcastAddress.AddressIn.sin_addr.s_addr;
+		/* iiBroadcast is unusable, because it always seems to be set to
+		 * 255.255.255.255.
+		 */
+		_broadcast_list[i++] =
+			 ifo[j].iiAddress.AddressIn.sin_addr.s_addr |
+			~ifo[j].iiNetmask.AddressIn.sin_addr.s_addr;
 	}
 #else
 	ifconf.ifc_len = sizeof(buf);