Branch oldpackages for 14.07
[14.07/packages.git] / lang / python-ifconfig / patches / 002-checkflags-up.patch
1 --- a/ifconfig.old      2010-12-10 12:14:12.026329707 +0100
2 +++ b/ifconfig.c        2010-12-10 12:15:18.374672352 +0100
3 @@ -64,20 +64,22 @@
4          sprintf(hwaddr, "%02x:%02x:%02x:%02x:%02x:%02x",
5                 *hw, *(hw + 1), *(hw + 2), *(hw + 3), *(hw + 4), *(hw + 5));
6  
7 -        /* address */
8 -        ioctl(fd, SIOCGIFADDR, &ifreq);
9 -        sin = (struct sockaddr_in *)&ifreq.ifr_broadaddr;
10 -        sprintf(addr, "%s", inet_ntoa(sin->sin_addr));
11 -
12 -        /* broadcast */
13 -        ioctl(fd, SIOCGIFBRDADDR, &ifreq);
14 -        sin = (struct sockaddr_in *)&ifreq.ifr_broadaddr;
15 -        sprintf(brdaddr, "%s", inet_ntoa(sin->sin_addr));
16 -
17 -        /* netmask */
18 -        ioctl(fd, SIOCGIFNETMASK, &ifreq);
19 -        sin = (struct sockaddr_in *)&ifreq.ifr_broadaddr;
20 -        sprintf(netmask, "%s", inet_ntoa(sin->sin_addr));
21 +        if (flags & IFF_UP) {
22 +            /* address */
23 +            ioctl(fd, SIOCGIFADDR, &ifreq);
24 +            sin = (struct sockaddr_in *)&ifreq.ifr_broadaddr;
25 +            sprintf(addr, "%s", inet_ntoa(sin->sin_addr));
26 +
27 +            /* broadcast */
28 +            ioctl(fd, SIOCGIFBRDADDR, &ifreq);
29 +            sin = (struct sockaddr_in *)&ifreq.ifr_broadaddr;
30 +            sprintf(brdaddr, "%s", inet_ntoa(sin->sin_addr));
31 +
32 +            /* netmask */
33 +            ioctl(fd, SIOCGIFNETMASK, &ifreq);
34 +            sin = (struct sockaddr_in *)&ifreq.ifr_broadaddr;
35 +            sprintf(netmask, "%s", inet_ntoa(sin->sin_addr));
36 +        }
37      }
38  
39      close(fd);