projects
/
openwrt
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4cb4364
)
mac80211: fix autochannel / fixed channel selection, add commands for unencrypted...
author
Felix Fietkau
<nbd@openwrt.org>
Sun, 11 Oct 2009 01:01:12 +0000
(
01:01
+0000)
committer
Felix Fietkau
<nbd@openwrt.org>
Sun, 11 Oct 2009 01:01:12 +0000
(
01:01
+0000)
SVN-Revision: 18024
package/mac80211/files/lib/wifi/mac80211.sh
patch
|
blob
|
history
diff --git
a/package/mac80211/files/lib/wifi/mac80211.sh
b/package/mac80211/files/lib/wifi/mac80211.sh
index 1a8272aca80d84adc3950a572e739ca6ceac1920..c11da4279b4bb75045dc35e7f74f2305b9e25e10 100644
(file)
--- a/
package/mac80211/files/lib/wifi/mac80211.sh
+++ b/
package/mac80211/files/lib/wifi/mac80211.sh
@@
-68,8
+68,8
@@
disable_mac80211() (
)
get_freq() {
local phy="$1"
)
get_freq() {
local phy="$1"
- local chan
nel
="$2"
- iw "$phy" info | grep -E -m1 "(\* ${chan
nel:-....} MHz${channel:+|\\[$channel
\\]})" | grep MHz | awk '{print $2}'
+ local chan="$2"
+ iw "$phy" info | grep -E -m1 "(\* ${chan
:-....} MHz${chan:+|\\[$chan
\\]})" | grep MHz | awk '{print $2}'
}
enable_mac80211() {
local device="$1"
}
enable_mac80211() {
local device="$1"
@@
-79,9
+79,15
@@
enable_mac80211() {
find_mac80211_phy "$device" || return 0
config_get phy "$device" phy
local i=0
find_mac80211_phy "$device" || return 0
config_get phy "$device" phy
local i=0
+ fixed=""
+ [ "$channel" = "auto" -o "$channel" = "0" ] || {
+ fixed=1
+ }
+
+ export channel fixed
# convert channel to frequency
# convert channel to frequency
- local freq="$(get_freq "$phy" "$
channel
")"
+ local freq="$(get_freq "$phy" "$
{fixed:+$channel}
")"
wifi_fixup_hwmode "$device" "g"
for vif in $vifs; do
wifi_fixup_hwmode "$device" "g"
for vif in $vifs; do
@@
-141,7
+147,7
@@
enable_mac80211() {
# We attempt to set teh channel for all interfaces, although
# mac80211 may not support it or the driver might not yet
# We attempt to set teh channel for all interfaces, although
# mac80211 may not support it or the driver might not yet
- [ -
z "$channel" ] || iw dev "$ifname" set channel "$channel"
+ [ -
n "$fixed" ] && iw dev "$ifname" set channel "$channel"
local key keystring
local key keystring
@@
-222,12
+228,13
@@
enable_mac80211() {
;;
adhoc)
config_get bssid "$vif" bssid
;;
adhoc)
config_get bssid "$vif" bssid
- iw dev "$ifname" ibss join "$ssid" $
{freq:+$freq
fixed-freq} $bssid
+ iw dev "$ifname" ibss join "$ssid" $
freq ${fixed:+
fixed-freq} $bssid
;;
sta|mesh)
;;
sta|mesh)
- # Fixup... sometimes you have to scan to get beaconing going
- iw dev "$ifname" scan &> /dev/null
case "$enc" in
case "$enc" in
+ *)
+ iw dev "$ifname" connect "$ssid"
+ ;;
wep)
if [ -e "$keymgmt" ]; then
[ -n "$keystring" ] &&
wep)
if [ -e "$keymgmt" ]; then
[ -n "$keystring" ] &&