X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/520eba9de807de93c350d05ac03b3df1bed29d36..32dec7075aae5cc6ef1e4394dc94fed1767b848e:/package/base-files/files/etc/init.d/network?ds=sidebyside

diff --git a/package/base-files/files/etc/init.d/network b/package/base-files/files/etc/init.d/network
index 74478c731..fc512216f 100755
--- a/package/base-files/files/etc/init.d/network
+++ b/package/base-files/files/etc/init.d/network
@@ -1,5 +1,5 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2011 OpenWrt.org
 
 START=40
 STOP=90
@@ -9,17 +9,32 @@ boot() {
 
 	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
@@ -31,3 +46,7 @@ restart() {
 stop() {
 	ifdown -a
 }
+
+restart() {
+	start
+}