aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-01-13 18:39:44 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-01-13 18:39:44 +0000
commit5073e6db1e2e3696cdb39ae99b3154b47a1fcdcf (patch)
tree45a3a83f2d2900d263d7c06641bdb4a92b835be1 /package/base-files
parentd540b178bf4ab30c1a47e676172c3c974e5aa803 (diff)
downloadupstream-5073e6db1e2e3696cdb39ae99b3154b47a1fcdcf.tar.gz
upstream-5073e6db1e2e3696cdb39ae99b3154b47a1fcdcf.tar.bz2
upstream-5073e6db1e2e3696cdb39ae99b3154b47a1fcdcf.zip
[package] base-files, mac80211 (#6491)
- fix wep key handling in iw with mac80211 based drivers - sanitize keys where necessary - put a procedure prepare_key_wep() into /sbin/wifi for use by other driver backends git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19118 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files')
-rwxr-xr-xpackage/base-files/files/sbin/wifi13
1 files changed, 13 insertions, 0 deletions
diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi
index 90aeef725d..5b6007f0a9 100755
--- a/package/base-files/files/sbin/wifi
+++ b/package/base-files/files/sbin/wifi
@@ -34,6 +34,19 @@ bridge_interface() {(
[ "$iftype" = bridge ] && config_get "$cfg" ifname
)}
+prepare_key_wep() {
+ local key="$1"
+ local hex=1
+
+ echo -n "$key" | grep -qE "[^a-fA-F0-9]" && hex=0
+ [ "${#key}" -eq 10 -a $hex -eq 1 ] || \
+ [ "${#key}" -eq 26 -a $hex -eq 1 ] || {
+ [ "${key:0:2}" = "s:" ] && key="${key#s:}"
+ key="$(echo -n "$key" | hexdump -ve '1/1 "%02x" ""')"
+ }
+ echo "$key"
+}
+
wifi_fixup_hwmode() {
local device="$1"
local default="$2"