use pidfiles for hostapd/wpa_supplicant instead of killing all processes when bringing an interface down - fixes an issue with random hostapd death
SVN-Revision: 13078
This commit is contained in:
parent
9161a70235
commit
a4f11ca22e
4 changed files with 7 additions and 9 deletions
|
@ -84,6 +84,8 @@ set_wifi_down() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local vifs vif vifstr
|
local vifs vif vifstr
|
||||||
|
|
||||||
|
[ -f "/var/run/wifi-${cfg}.pid" ] &&
|
||||||
|
kill "$(cat "/var/run/wifi-${cfg}.pid")"
|
||||||
uci_revert_state wireless "$cfg"
|
uci_revert_state wireless "$cfg"
|
||||||
config_get vifs "$cfg" vifs
|
config_get vifs "$cfg" vifs
|
||||||
for vif in $vifs; do
|
for vif in $vifs; do
|
||||||
|
|
|
@ -96,6 +96,6 @@ wpa=$wpa
|
||||||
wpa_pairwise=$crypto
|
wpa_pairwise=$crypto
|
||||||
$hostapd_cfg
|
$hostapd_cfg
|
||||||
EOF
|
EOF
|
||||||
hostapd -B /var/run/hostapd-$ifname.conf
|
hostapd -P /var/run/wifi-$ifname.conf -B /var/run/hostapd-$ifname.conf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,17 +50,13 @@ disable_atheros() (
|
||||||
local device="$1"
|
local device="$1"
|
||||||
|
|
||||||
set_wifi_down "$device"
|
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
|
include /lib/network
|
||||||
cd /proc/sys/net
|
cd /proc/sys/net
|
||||||
for dev in *; do
|
for dev in *; do
|
||||||
grep "$device" "$dev/%parent" >/dev/null 2>/dev/null && {
|
grep "$device" "$dev/%parent" >/dev/null 2>/dev/null && {
|
||||||
|
[ -f "/var/run/wifi-${dev}.pid" ] &&
|
||||||
|
kill "$(cat "/var/run/wifi-${dev}.pid")"
|
||||||
ifconfig "$dev" down
|
ifconfig "$dev" down
|
||||||
unbridge "$dev"
|
unbridge "$dev"
|
||||||
wlanconfig "$dev" destroy
|
wlanconfig "$dev" destroy
|
||||||
|
|
|
@ -75,5 +75,5 @@ network={
|
||||||
$password
|
$password
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
[ -z "$proto" ] || wpa_supplicant ${bridge:+ -b $bridge} -B -D ${driver:-wext} -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf
|
[ -z "$proto" ] || wpa_supplicant ${bridge:+ -b $bridge} -B -P "/var/run/wifi-${ifname}.pid" -D ${driver:-wext} -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue