summaryrefslogtreecommitdiffhomepage
path: root/interface.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-04-05 02:35:29 +0200
committerFelix Fietkau <nbd@openwrt.org>2011-04-05 02:35:29 +0200
commit3a9fe0cb9fa812bdecdf0a6f2d5e81877fe8cd1b (patch)
tree6fabea59608651bad03c8961f5b4cdc073b5a870 /interface.c
parentd6bcf552c169c1d0fd317f9654b8c81c3d838362 (diff)
prevent autostart of interfaces during config init
Diffstat (limited to 'interface.c')
-rw-r--r--interface.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/interface.c b/interface.c
index 823a06f..06a36ed 100644
--- a/interface.c
+++ b/interface.c
@@ -130,7 +130,7 @@ interface_cb(struct device_user *dep, enum device_event ev)
iface->active = new_state;
if (new_state) {
- if (iface->autostart)
+ if (iface->autostart && !config_init)
set_interface_up(iface);
} else
__set_interface_down(iface, true);
@@ -277,3 +277,14 @@ set_interface_down(struct interface *iface)
return 0;
}
+
+void
+start_pending_interfaces(void)
+{
+ struct interface *iface;
+
+ list_for_each_entry(iface, &interfaces, list) {
+ if (iface->active && iface->autostart)
+ set_interface_up(iface);
+ }
+}