summaryrefslogtreecommitdiff
path: root/network.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-06-17 13:25:22 +0000
committertron <tron@openttd.org>2006-06-17 13:25:22 +0000
commitc8f6c4ef2f93028e402422cb5ee764939f2269a0 (patch)
treeca5fa6580b40153e0ab9431824669c9c1d10b6e3 /network.c
parent5db6c57bead97ee1c774d02c7a870d4f08c23ddf (diff)
downloadopenttd-c8f6c4ef2f93028e402422cb5ee764939f2269a0.tar.xz
(svn r5297) Check the interface flags if IFF_BROADCAST is set before asking for the broadcast address
Diffstat (limited to 'network.c')
-rw-r--r--network.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/network.c b/network.c
index bfc5d806f..262a61705 100644
--- a/network.c
+++ b/network.c
@@ -427,7 +427,9 @@ static void NetworkFindIPs(void)
struct ifreq r;
strncpy(r.ifr_name, req->ifr_name, lengthof(r.ifr_name));
- if (ioctl(sock, SIOCGIFBRDADDR, &r) != -1) {
+ if (ioctl(sock, SIOCGIFFLAGS, &r) != -1 &&
+ r.ifr_flags & IFF_BROADCAST &&
+ ioctl(sock, SIOCGIFBRDADDR, &r) != -1) {
_broadcast_list[i++] =
((struct sockaddr_in*)&r.ifr_broadaddr)->sin_addr.s_addr;
}