summaryrefslogtreecommitdiffstats
path: root/package/base-files/default/sbin/wifi
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-06-25 15:42:53 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-06-25 15:42:53 +0000
commitd3abc2c9f5dc2d238c17bd8764f780b38cf58491 (patch)
treeec5319f487a86489521f22c2f228e9e15006b61e /package/base-files/default/sbin/wifi
parentffbd3e61655e48e3485b22dca727ffce3786fdd5 (diff)
add a simple /sbin/wifi script with support for the new broadcom driver (incomplete, but works)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4072 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/default/sbin/wifi')
-rwxr-xr-xpackage/base-files/default/sbin/wifi47
1 files changed, 47 insertions, 0 deletions
diff --git a/package/base-files/default/sbin/wifi b/package/base-files/default/sbin/wifi
new file mode 100755
index 000000000..c983fe0df
--- /dev/null
+++ b/package/base-files/default/sbin/wifi
@@ -0,0 +1,47 @@
+#!/bin/sh
+. /etc/functions.sh
+
+config_get_bool() {
+ local _tmp
+ config_get "$1" "$2" "$3"
+ eval "_tmp=\$$1"
+ case "$_tmp" in
+ 1|on|enabled) eval "$1=1";;
+ 0|off|disabled) eval "$1=0";;
+ *) eval "$1=${4:-0}";;
+ esac
+}
+
+config_cb() {
+ config_get TYPE "$CONFIG_SECTION" TYPE
+ case "$TYPE" in
+ wifi-device)
+ append DEVICES "$CONFIG_SECTION"
+ ;;
+ wifi-iface)
+ config_get device "$CONFIG_SECTION" device
+ config_get vifs "$device" vifs
+ append vifs "$CONFIG_SECTION"
+ config_set "$device" vifs "$vifs"
+ ;;
+ esac
+}
+
+config_load wireless
+
+[ -d /lib/wifi -a -n "$(ls /lib/wifi/*.sh 2>&-)" ] && {
+ for script in /lib/wifi/*.sh; do
+ . $script
+ done
+}
+
+for device in $DEVICES; do (
+ config_get type "$device" type
+ eval "type setup_$type 2>&- >&-" && {
+ eval "scan_$type '$device'"
+ eval "setup_$type '$device'" && {
+ # TODO: set up network settings
+ /bin/true
+ } || echo "$device($type): Setup failed" || true
+ } || echo "$device($type): Interface type not supported"
+); done