#!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2011 OpenWrt.org
START=40
-STOP=40
+STOP=90
boot() {
setup_switch() { return 0; }
include /lib/network
setup_switch
- [ -s /etc/config/wireless ] || \
- /sbin/wifi detect > /etc/config/wireless
- /sbin/wifi up
-}
-start() {
- ifup -a
- /sbin/wifi up
+ /sbin/wifi detect > /tmp/wireless.tmp
+ [ -s /tmp/wireless.tmp ] && {
+ cat /tmp/wireless.tmp >> /etc/config/wireless
+ }
+ rm -f /tmp/wireless.tmp
+ grep -qs config /etc/config/wireless && {
+ /sbin/wifi up
+ }
+
+ scan_interfaces
+
+ local ifc
+ for ifc in $interfaces; do
+ local proto
+ config_get proto "$ifc" proto
+
+ local auto
+ config_get_bool auto "$ifc" auto 1
+
+ type "coldplug_interface_$proto" >/dev/null && [ "$auto" = 1 ] && \
+ coldplug_interface_$proto "$ifc"
+ done
}
-restart() {
+start() {
setup_switch() { return 0; }
include /lib/network
stop() {
ifdown -a
}
+
+restart() {
+ start
+}