nl80211: simplify iterating over phy's devices
There's no need to iterate over all devices in /sys/class/net and check if the phy index matches, sysfs already provides per phy devices. Signed-off-by: Andre Heider <a.heider@gmail.com>
This commit is contained in:
parent
acbf4fe47d
commit
6194aaf052
1 changed files with 9 additions and 12 deletions
|
@ -826,24 +826,21 @@ static char * nl80211_phy2ifname(const char *ifname)
|
|||
|
||||
memset(nif, 0, sizeof(nif));
|
||||
|
||||
if ((d = opendir("/sys/class/net")) != NULL)
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
"/sys/class/ieee80211/phy%d/device/net", phyidx);
|
||||
|
||||
if ((d = opendir(buffer)) != NULL)
|
||||
{
|
||||
while ((e = readdir(d)) != NULL)
|
||||
{
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
"/sys/class/net/%s/phy80211/index", e->d_name);
|
||||
"/sys/class/net/%s/ifindex", e->d_name);
|
||||
|
||||
if (nl80211_readint(buffer) == phyidx)
|
||||
if ((cifidx = nl80211_readint(buffer)) >= 0 &&
|
||||
((ifidx < 0) || (cifidx < ifidx)))
|
||||
{
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
"/sys/class/net/%s/ifindex", e->d_name);
|
||||
|
||||
if ((cifidx = nl80211_readint(buffer)) >= 0 &&
|
||||
((ifidx < 0) || (cifidx < ifidx)))
|
||||
{
|
||||
ifidx = cifidx;
|
||||
strncpy(nif, e->d_name, sizeof(nif) - 1);
|
||||
}
|
||||
ifidx = cifidx;
|
||||
strncpy(nif, e->d_name, sizeof(nif) - 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue