X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Fsbin%2Fifup;h=5f8d80dc2ddf16319d22ceaf59d668f81b6f7658;hb=e67923dac3fc44f9da32aa0d13a75c0151a76945;hp=6acd2ed09978276636c6a1a27f27453d67b701b5;hpb=a19915e1c3bdc6f39a39f676058654425b52b43c;p=openwrt-10.03%2F.git diff --git a/package/base-files/files/sbin/ifup b/package/base-files/files/sbin/ifup index 6acd2ed09..5f8d80dc2 100755 --- a/package/base-files/files/sbin/ifup +++ b/package/base-files/files/sbin/ifup @@ -5,14 +5,42 @@ . /etc/functions.sh [ $# = 0 ] && { echo " $0 "; exit; } -[ "x$1" = "x-a" ] && { - [ -e "/tmp/resolv.conf.auto" ] && rm /tmp/resolv.conf.auto - config_cb() { - [ interface != "$1" -o -z "$2" ] || eval "$0 $2" + +setup_wifi=1 + +case "$1" in + "-a") + [ -e "/tmp/resolv.conf.auto" ] && rm /tmp/resolv.conf.auto + config_cb() { + [ interface != "$1" -o -z "$2" ] || eval "$0 -w $2" + } + config_load network + exit 0 + ;; + "-w") setup_wifi=0; shift ;; +esac + +if [ $setup_wifi -gt 0 ] && grep -q config /etc/config/wireless; then + find_related_radios() { + local wdev wnet + config_get wdev "$1" device + config_get wnet "$1" network + + if [ -n "$wdev" ] && [ "$wnet" = "$network" ]; then + append radio_devs "$wdev" "$N" + fi } - config_load network - exit -} + + local radio_devs + local network="$1" + config_load wireless + config_foreach find_related_radios wifi-iface + + local dev + for dev in $(echo "$radio_devs" | sort -u); do + /sbin/wifi up "$dev" + done +fi include /lib/network scan_interfaces