diff options
author | Florian Fainelli <florian@openwrt.org> | 2008-08-13 14:06:16 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2008-08-13 14:06:16 +0000 |
commit | b188bc8497bb60fb577f0ad92f2330d4494a175c (patch) | |
tree | 2b8a369f4ac0e4206e3404e68cbe0b9b8543d462 /package/mac80211/files/lib | |
parent | 5fb437fb8548b40eb5ddb77a585f6cac23d11b7d (diff) | |
download | upstream-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
Diffstat (limited to 'package/mac80211/files/lib')
-rw-r--r-- | package/mac80211/files/lib/wifi/mac80211.sh | 11 |
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 |