projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
madwifi: ap+sta race conditions
[openwrt.git]
/
package
/
madwifi
/
files
/
lib
/
wifi
/
madwifi.sh
diff --git
a/package/madwifi/files/lib/wifi/madwifi.sh
b/package/madwifi/files/lib/wifi/madwifi.sh
index
b6ba465
..
0ff9292
100755
(executable)
--- a/
package/madwifi/files/lib/wifi/madwifi.sh
+++ b/
package/madwifi/files/lib/wifi/madwifi.sh
@@
-42,7
+42,7
@@
scan_atheros() {
*) echo "$device: Invalid mode combination in config"; return 1;;
esac
*) echo "$device: Invalid mode combination in config"; return 1;;
esac
- config_set "$device" vifs "${
ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo }${sta:+$sta
}${wds:+$wds }${monitor:+$monitor}"
+ config_set "$device" vifs "${
sta:+$sta }${ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo
}${wds:+$wds }${monitor:+$monitor}"
}
}
@@
-50,18
+50,14
@@
disable_atheros() (
local device="$1"
set_wifi_down "$device"
local device="$1"
set_wifi_down "$device"
- # kill all running hostapd and wpa_supplicant processes that
- # are running on atheros vifs
- for pid in `pidof hostapd wpa_supplicant`; do
- grep ath /proc/$pid/cmdline >/dev/null && \
- kill $pid
- done
include /lib/network
cd /proc/sys/net
for dev in *; do
grep "$device" "$dev/%parent" >/dev/null 2>/dev/null && {
include /lib/network
cd /proc/sys/net
for dev in *; do
grep "$device" "$dev/%parent" >/dev/null 2>/dev/null && {
- ifconfig "$dev" down
+ [ -f "/var/run/wifi-${dev}.pid" ] &&
+ kill "$(cat "/var/run/wifi-${dev}.pid")"
+ ifconfig "$dev" down
unbridge "$dev"
wlanconfig "$dev" destroy
}
unbridge "$dev"
wlanconfig "$dev" destroy
}
@@
-177,12
+173,11
@@
enable_atheros() {
config_get antrx "$device" rxantenna
config_get anttx "$device" txantenna
config_get_bool softled "$device" softled 1
config_get antrx "$device" rxantenna
config_get anttx "$device" txantenna
config_get_bool softled "$device" softled 1
- config_get_bool gpioctl "$device" gpioctl
devname="$(cat /proc/sys/dev/$device/dev_name)"
antgpio=
case "$devname" in
devname="$(cat /proc/sys/dev/$device/dev_name)"
antgpio=
case "$devname" in
- NanoStation2) antgpio=
wlan; [ -n "$gpioctl" ] && gpioctl=0
;;
+ NanoStation2) antgpio=
7
;;
NanoStation5) antgpio=1;;
esac
if [ -n "$antgpio" ]; then
NanoStation5) antgpio=1;;
esac
if [ -n "$antgpio" ]; then
@@
-198,20
+193,12
@@
enable_atheros() {
[ -x "$(which gpioctl 2>/dev/null)" ] || antenna=
case "$antenna" in
horizontal|vertical|auto)
[ -x "$(which gpioctl 2>/dev/null)" ] || antenna=
case "$antenna" in
horizontal|vertical|auto)
- if [ "$gpioctl" = "0" ]; then
- echo 1 >/sys/class/leds/$antgpio/brightness 2>&1
- else
- gpioctl "dirout" "$antgpio" >/dev/null 2>&1
- gpioctl "set" "$antgpio" >/dev/null 2>&1
- fi
+ gpioctl "dirout" "$antgpio" >/dev/null 2>&1
+ gpioctl "set" "$antgpio" >/dev/null 2>&1
;;
external)
;;
external)
- if [ "$gpioctl" = "0" ]; then
- echo 0 >/sys/class/leds/$antgpio/brightness
- else
- gpioctl "dirout" "$antgpio" >/dev/null 2>&1
- gpioctl "clear" "$antgpio" >/dev/null 2>&1
- fi
+ gpioctl "dirout" "$antgpio" >/dev/null 2>&1
+ gpioctl "clear" "$antgpio" >/dev/null 2>&1
;;
esac
fi
;;
esac
fi
This page took
0.024751 seconds
and
4
git commands to generate.