summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorTravis Kemen <thepeople@openwrt.org>2009-09-06 17:02:14 +0000
committerTravis Kemen <thepeople@openwrt.org>2009-09-06 17:02:14 +0000
commit27915ac778c7b142a5fe9a8db977e2d89706d3f2 (patch)
treed2534c0b08c2ec9840dccfb2ebea6689e3499c55 /package
parent65fa1debdae9f85f953d70f2eeba0814bfc4d9ba (diff)
downloadmaster-31e0f0ae-27915ac778c7b142a5fe9a8db977e2d89706d3f2.tar.gz
master-31e0f0ae-27915ac778c7b142a5fe9a8db977e2d89706d3f2.tar.bz2
master-31e0f0ae-27915ac778c7b142a5fe9a8db977e2d89706d3f2.zip
fix nonhotpluggable networks not being brought up. Closes #2781
SVN-Revision: 17527
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 e77db02517..75103ec073 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 bfadf40c89..12a3378b8c 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 b32b2c9f25..ea0a28b3ae 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"