mac80211: fix detecting existing interface
[oweals/openwrt.git] / package / kernel / mac80211 / files / lib / netifd / mac80211.sh
1 mac80211_phy_to_path() {
2         local phy="$1"
3
4         [ -x /usr/bin/readlink -a -h /sys/class/ieee80211/${phy} ] || return
5
6         local path="$(readlink -f /sys/class/ieee80211/${phy}/device)"
7         [ -n "$path" ] || return
8
9         path="${path##/sys/devices/}"
10         case "$path" in
11                 platform*/pci*) path="${path##platform/}";;
12         esac
13
14         local p
15         local seq=""
16         for p in $(ls /sys/class/ieee80211/$phy/device/ieee80211); do
17                 [ "$p" = "$phy" ] && {
18                         echo "$path${seq:++$seq}"
19                         break
20                 }
21
22                 seq=$((${seq:-0} + 1))
23         done
24 }
25
26 mac80211_path_to_phy() {
27         local path="$1"
28
29         local p
30         for p in $(ls /sys/class/ieee80211); do
31                 local cur="$(mac80211_phy_to_path "$p")"
32                 case "$cur" in
33                         *$path) echo "$p"; return;;
34                 esac
35         done
36 }