swconfig: fix vlan/port configs being applied to all switches
[openwrt.git] / package / base-files / files / etc / init.d / network
index 75103ec..fc51221 100755 (executable)
@@ -1,40 +1,40 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2011 OpenWrt.org
 
 START=40
-STOP=40
-
-config_cb() {
-       local cfg_type="$1"
-
-       case "$cfg_type" in
-               interface)
-                       append networks "$2" "$N"
-               ;;
-       esac
-}
+STOP=90
 
 boot() {
-       uci_load network
        setup_switch() { return 0; }
 
        include /lib/network
        setup_switch
-       [ -s /etc/config/wireless ] || \
-               /sbin/wifi detect > /etc/config/wireless
-       /sbin/wifi up
-       for network in $networks; do
-               config_get startupcheck $network started
-               [ "$startupcheck" = "" ] && ifup $network
+
+       /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
 }
 
 start() {
-       ifup -a
-       /sbin/wifi up
-}
-
-restart() {
        setup_switch() { return 0; }
        
        include /lib/network
@@ -46,3 +46,7 @@ restart() {
 stop() {
        ifdown -a
 }
+
+restart() {
+       start
+}
This page took 0.026098 seconds and 4 git commands to generate.