summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--config.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/config.c b/config.c
index d6ff826..4158cc8 100644
--- a/config.c
+++ b/config.c
@@ -330,31 +330,34 @@ config_init_package(const char *config)
return p;
}
-void
-config_init_all(void)
+static void
+config_init_interfaces(void)
{
- struct uci_package *p = NULL;
struct uci_element *e;
- p = config_init_package("network");
- if (!p) {
+ uci_foreach_element(&uci_network->sections, e) {
+ struct uci_section *s = uci_to_section(e);
+
+ if (!strcmp(s->type, "interface"))
+ config_parse_interface(s);
+ }
+}
+
+void
+config_init_all(void)
+{
+ uci_network = config_init_package("network");
+ if (!uci_network) {
fprintf(stderr, "Failed to load network config\n");
return;
}
- uci_network = p;
config_init = true;
device_lock();
device_reset_config();
config_init_devices();
-
- uci_foreach_element(&p->sections, e) {
- struct uci_section *s = uci_to_section(e);
-
- if (!strcmp(s->type, "interface"))
- config_parse_interface(s);
- }
+ config_init_interfaces();
config_init = false;
device_unlock();