diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-04-05 02:35:29 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-04-05 02:35:29 +0200 |
commit | 3a9fe0cb9fa812bdecdf0a6f2d5e81877fe8cd1b (patch) | |
tree | 6fabea59608651bad03c8961f5b4cdc073b5a870 /interface.c | |
parent | d6bcf552c169c1d0fd317f9654b8c81c3d838362 (diff) |
prevent autostart of interfaces during config init
Diffstat (limited to 'interface.c')
-rw-r--r-- | interface.c | 13 |
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); + } +} |