summaryrefslogtreecommitdiff
path: root/package/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel')
-rw-r--r--package/kernel/mac80211/files/lib/wifi/mac80211.sh24
1 files changed, 18 insertions, 6 deletions
diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
index 20f6bfa93c..fb6cd29676 100644
--- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
@@ -251,7 +251,7 @@ disable_mac80211() (
include /lib/network
for wdev in $(list_phy_interfaces "$phy"); do
[ -f "/var/run/$wdev.pid" ] && kill $(cat /var/run/$wdev.pid) >&/dev/null 2>&1
- for pid in `pidof wpa_supplicant`; do
+ for pid in `pidof wpa_supplicant meshd-nl80211`; do
grep "$wdev" /proc/$pid/cmdline >/dev/null && \
kill $pid
done
@@ -370,8 +370,13 @@ enable_mac80211() {
[ "$apidx" -gt 1 ] || iw phy "$phy" interface add "$ifname" type managed
;;
mesh)
- config_get mesh_id "$vif" mesh_id
- iw phy "$phy" interface add "$ifname" type mp mesh_id "$mesh_id"
+ config_get key "$vif" key ""
+ if [ -n "$key" ]; then
+ iw phy "$phy" interface add "$ifname" type mp
+ else
+ config_get mesh_id "$vif" mesh_id
+ iw phy "$phy" interface add "$ifname" type mp mesh_id "$mesh_id"
+ fi
;;
monitor)
iw phy "$phy" interface add "$ifname" type monitor
@@ -426,9 +431,16 @@ enable_mac80211() {
rm -f /var/run/hostapd-$phy.conf
for vif in $vifs; do
config_get mode "$vif" mode
- [ "$mode" = "ap" ] || continue
- mac80211_hostapd_setup_bss "$phy" "$vif"
- start_hostapd=1
+ case "$mode" in
+ ap)
+ mac80211_hostapd_setup_bss "$phy" "$vif"
+ start_hostapd=1
+ ;;
+ mesh)
+ config_get key "$vif" key ""
+ [ -n "$key" ] && authsae_start_interface "$device" "$vif"
+ ;;
+ esac
done
[ -n "$start_hostapd" ] && {