mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-26 05:02:18 +00:00
0093d84dcd
PR: ports/98885 Submitted by: Eric P. Scott <eps+pbug0606@ana.com> Approved by: Ulrich Spoerlein <uspoerlein@gmail.com> (maintainer)
47 lines
1.0 KiB
C
47 lines
1.0 KiB
C
--- src/wireless.c.orig Tue Mar 9 20:39:17 2004
|
|
+++ src/wireless.c Sun Jun 11 00:46:29 2006
|
|
@@ -143,6 +143,7 @@
|
|
|
|
max = get_max_ifs();
|
|
step = 0;
|
|
+ found = 0;
|
|
|
|
if (old > max)
|
|
old = max; /* just be sure to not be out of bounds */
|
|
@@ -178,8 +179,8 @@
|
|
len = sizeof(ifmd);
|
|
sysctl(name, 6, &ifmd, &len, NULL, 0);
|
|
|
|
- /* skip loopback interface */
|
|
- if (!strcmp(ifmd.ifmd_name, "lo0"))
|
|
+ /* skip loopback and point-to-point interfaces */
|
|
+ if ((ifmd.ifmd_flags&(IFF_LOOPBACK|IFF_POINTOPOINT))!=0)
|
|
continue;
|
|
|
|
s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
|
@@ -193,9 +194,11 @@
|
|
|
|
if (ioctl(s, SIOCGIFMEDIA, (caddr_t) &ifmr) < 0)
|
|
{
|
|
- perror("ioctl");
|
|
+ char str[128];
|
|
+ snprintf(str, 128, "ioctl for interface %s failed", ifmr.ifm_name);
|
|
close(s);
|
|
- exit(1);
|
|
+ warn(str);
|
|
+ continue;
|
|
}
|
|
close(s);
|
|
/* we cannot monitor interfaces in hostap mode, so just
|
|
@@ -207,6 +210,10 @@
|
|
found++;
|
|
}
|
|
}
|
|
+
|
|
+ if (!found)
|
|
+ return -1;
|
|
+
|
|
return index;
|
|
}
|
|
/* how many interfaces do we have? this includes non-wireless! */
|