aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-03-27 21:14:59 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-03-27 21:14:59 +0000
commit9899ab0de2e8c3706f0a8f56d315f2c1c92bf651 (patch)
treec2d9f37cc5a7fe3e1446132b529c9a117aeffc3f /package/base-files
parent837c4899eae2ac5e6daf155ba4195e0f66a15ce1 (diff)
downloadmaster-187ad058-9899ab0de2e8c3706f0a8f56d315f2c1c92bf651.tar.gz
master-187ad058-9899ab0de2e8c3706f0a8f56d315f2c1c92bf651.tar.bz2
master-187ad058-9899ab0de2e8c3706f0a8f56d315f2c1c92bf651.zip
wifi: fix hostapd + autochannel
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15055 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files')
-rwxr-xr-xpackage/base-files/files/sbin/wifi34
1 files changed, 34 insertions, 0 deletions
diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi
index e0aca63155..ec231457e9 100755
--- a/package/base-files/files/sbin/wifi
+++ b/package/base-files/files/sbin/wifi
@@ -34,6 +34,40 @@ bridge_interface() {(
[ "$iftype" = bridge ] && config_get "$cfg" ifname
)}
+wifi_fixup_hwmode() {
+ local device="$1"
+ local default="$2"
+ local hwmode hwmode_11n
+
+ config_get channel "$device" channel
+ config_get hwmode "$device" hwmode
+ case "$hwmode" in
+ 11a) hwmode=a;;
+ 11b) hwmode=b;;
+ 11g) hwmode=g;;
+ 11n*)
+ hwmode_11n="${hwmode##11n}"
+ case "$hwmode" in
+ a|g) ;;
+ default) hwmode_11n="$default"
+ esac
+ config_set "$device" hwmode_11n "$hwmode_11n"
+ ;;
+ *)
+ hwmode=
+ if [ "${channel:-0}" -gt 0 ]; then
+ if [ "${channel:-0}" -gt 14 ]; then
+ hwmode=a
+ else
+ hwmode=g
+ fi
+ else
+ hwmode="$default"
+ fi
+ ;;
+ esac
+ config_set "$device" hwmode "$hwmode"
+}
wifi_updown() {
[ enable = "$1" ] && wifi_updown disable "$2"