2006-06-25 18:42:53 +03:00
|
|
|
#!/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
|
2006-06-25 19:24:45 +03:00
|
|
|
eval "type setup_$type" 2>/dev/null >/dev/null && {
|
2006-06-25 18:42:53 +03:00
|
|
|
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
|