(svn r5297) Check the interface flags if IFF_BROADCAST is set before asking for the broadcast address
authortron
Sat, 17 Jun 2006 13:25:22 +0000
changeset 4037 cac65872c4c1
parent 4036 627aca47ae76
child 4038 b23bbe44d1ba
(svn r5297) Check the interface flags if IFF_BROADCAST is set before asking for the broadcast address
network.c
--- a/network.c	Sat Jun 17 12:11:17 2006 +0000
+++ b/network.c	Sat Jun 17 13:25:22 2006 +0000
@@ -427,7 +427,9 @@
 			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;
 			}