aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2008-08-13 14:06:16 +0000
committerFlorian Fainelli <florian@openwrt.org>2008-08-13 14:06:16 +0000
commitb188bc8497bb60fb577f0ad92f2330d4494a175c (patch)
tree2b8a369f4ac0e4206e3404e68cbe0b9b8543d462
parent5fb437fb8548b40eb5ddb77a585f6cac23d11b7d (diff)
downloadupstream-b188bc8497bb60fb577f0ad92f2330d4494a175c.tar.gz
upstream-b188bc8497bb60fb577f0ad92f2330d4494a175c.tar.bz2
upstream-b188bc8497bb60fb577f0ad92f2330d4494a175c.zip
Fix putting mac80211 interfaces in monitor and managed modes
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12293 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/mac80211/files/lib/wifi/mac80211.sh11
1 files changed, 8 insertions, 3 deletions
diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh
index bdf664c222..3f85864ec2 100644
--- a/package/mac80211/files/lib/wifi/mac80211.sh
+++ b/package/mac80211/files/lib/wifi/mac80211.sh
@@ -13,14 +13,14 @@ scan_mac80211() {
config_get mode "$vif" mode
case "$mode" in
- adhoc|sta|ap)
+ adhoc|sta|ap|monitor)
append $mode "$vif"
;;
*) echo "$device($vif): Invalid mode, ignored."; continue;;
esac
done
- config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo }${sta:+$sta }${wds:+$wds }"
+ config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo }${sta:+$sta }${wds:+$wds }${monitor:+$monitor}"
}
@@ -53,6 +53,7 @@ enable_mac80211() {
local first=1
for vif in $vifs; do
+ ifconfig "$ifname" down
config_get ifname "$vif" ifname
config_get enc "$vif" encryption
config_get eap_type "$vif" eap_type
@@ -73,10 +74,14 @@ enable_mac80211() {
sleep 1
iwconfig "$ifname" mode ad-hoc >/dev/null 2>/dev/null
fi
- ifconfig "$ifname" up
sleep 1
iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null
}
+ if [ "$mode" = sta ]; then
+ iwconfig "$ifname" mode managed >/dev/null 2>/dev/null
+ else
+ iwconfig "$ifname" mode $mode >/dev/null 2>/dev/null
+ fi
wpa=
case "$enc" in