diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-01-13 18:39:44 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-01-13 18:39:44 +0000 |
commit | 505a102cb37f0a44c56cf6079a629debd08a8bad (patch) | |
tree | 45a3a83f2d2900d263d7c06641bdb4a92b835be1 /package/base-files/files | |
parent | 90cf7545665105c1d7bc16335b8cc4e68071483f (diff) |
[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/files')
-rwxr-xr-x | package/base-files/files/sbin/wifi | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi index 90aeef725..5b6007f0a 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" |