summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorthepeople <thepeople@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-09-06 17:02:14 +0000
committerthepeople <thepeople@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-09-06 17:02:14 +0000
commit943fc97fb0340c01d8039bccbfc6c90ddcffc774 (patch)
tree2714985d894bf7a2234e248dada4205afe44d458 /package
parentd303e45f4bbad9c4fff934cf8f63f33538af8cee (diff)
fix nonhotpluggable networks not being brought up. Closes #2781
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17527 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rwxr-xr-xpackage/base-files/files/etc/init.d/network15
-rwxr-xr-xpackage/base-files/files/lib/network/config.sh1
-rwxr-xr-xpackage/base-files/files/usr/share/udhcpc/default.script1
3 files changed, 17 insertions, 0 deletions
diff --git a/package/base-files/files/etc/init.d/network b/package/base-files/files/etc/init.d/network
index e77db0251..75103ec07 100755
--- a/package/base-files/files/etc/init.d/network
+++ b/package/base-files/files/etc/init.d/network
@@ -4,7 +4,18 @@
START=40
STOP=40
+config_cb() {
+ local cfg_type="$1"
+
+ case "$cfg_type" in
+ interface)
+ append networks "$2" "$N"
+ ;;
+ esac
+}
+
boot() {
+ uci_load network
setup_switch() { return 0; }
include /lib/network
@@ -12,6 +23,10 @@ boot() {
[ -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
+ done
}
start() {
diff --git a/package/base-files/files/lib/network/config.sh b/package/base-files/files/lib/network/config.sh
index bfadf40c8..12a3378b8 100755
--- a/package/base-files/files/lib/network/config.sh
+++ b/package/base-files/files/lib/network/config.sh
@@ -153,6 +153,7 @@ set_interface_ifname() {
config_get device "$1" device
uci_set_state network "$config" ifname "$ifname"
uci_set_state network "$config" device "$device"
+ uci_set_state network "$config" started 1
}
setup_interface_none() {
diff --git a/package/base-files/files/usr/share/udhcpc/default.script b/package/base-files/files/usr/share/udhcpc/default.script
index b32b2c9f2..ea0a28b3a 100755
--- a/package/base-files/files/usr/share/udhcpc/default.script
+++ b/package/base-files/files/usr/share/udhcpc/default.script
@@ -203,6 +203,7 @@ for ifc in $interfaces __default; do
config_get ifname "$ifc" ifname
config_get aliases "$ifc" aliases
uci_revert_state network "$ifc"
+ uci_set_state network "$ifc" started 1
[ -n "$device" ] && uci_set_state network "$ifc" device "$device"
[ -n "$ifname" ] && uci_set_state network "$ifc" ifname "$ifname"
[ -n "$aliases" ] && uci_set_state network "$ifc" aliases "$aliases"