summaryrefslogtreecommitdiff
path: root/openwrt/package/base-files/default/sbin
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-06-25 15:42:53 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-06-25 15:42:53 +0000
commitf59462b0e74a806c59057aa7f4138d27bb257a17 (patch)
tree03aa7dffb4d7a4ee50ea57e1e38440bdd4e67004 /openwrt/package/base-files/default/sbin
parent292fb9eaeeb53a7cb60a0cecb7e46f11d8626b91 (diff)
downloadmtk-20170518-f59462b0e74a806c59057aa7f4138d27bb257a17.zip
mtk-20170518-f59462b0e74a806c59057aa7f4138d27bb257a17.tar.gz
mtk-20170518-f59462b0e74a806c59057aa7f4138d27bb257a17.tar.bz2
add a simple /sbin/wifi script with support for the new broadcom driver (incomplete, but works)
SVN-Revision: 4072
Diffstat (limited to 'openwrt/package/base-files/default/sbin')
-rwxr-xr-xopenwrt/package/base-files/default/sbin/wifi47
1 files changed, 47 insertions, 0 deletions
diff --git a/openwrt/package/base-files/default/sbin/wifi b/openwrt/package/base-files/default/sbin/wifi
new file mode 100755
index 0000000..c983fe0
--- /dev/null
+++ b/openwrt/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