-static gboolean interface_is_up(int index)
-{
- int sk, err;
- struct ifreq ifr;
- gboolean ret = FALSE;
-
- sk = socket(PF_INET, SOCK_DGRAM, 0);
- if (sk < 0) {
- perror("Open socket error");
- return FALSE;
- }
-
- memset(&ifr, 0, sizeof(ifr));
- ifr.ifr_ifindex = index;
-
- err = ioctl(sk, SIOCGIFNAME, &ifr);
- if (err < 0) {
- perror("Get interface name error");
- goto done;
- }
-
- err = ioctl(sk, SIOCGIFFLAGS, &ifr);
- if (err < 0) {
- perror("Get interface flags error");
- goto done;
- }
-
- if (ifr.ifr_flags & IFF_UP)
- ret = TRUE;
-
-done:
- close(sk);
-
- return ret;
-}
-
-static char *get_interface_name(int index)
-{
- struct ifreq ifr;
- int sk, err;
-
- if (index < 0)
- return NULL;