interface: remove "dynamic" argument for interface_init, add the interface_set_dynami...
authorFelix Fietkau <nbd@openwrt.org>
Sat, 19 Oct 2013 15:30:04 +0000 (17:30 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 19 Oct 2013 15:30:04 +0000 (17:30 +0200)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
config.c
interface.c
interface.h
ubus.c

index f589a4bf4cfc3322e0e9648bc614d21ac156d41c..682db54d536b42c65db1835368494f79af5c3fcd 100644 (file)
--- a/config.c
+++ b/config.c
@@ -75,7 +75,7 @@ config_parse_interface(struct uci_section *s, bool alias)
        if (!iface)
                return;
 
-       interface_init(iface, s->e.name, b.head, false);
+       interface_init(iface, s->e.name, b.head);
 
        if (iface->proto_handler && iface->proto_handler->config_params)
                uci_to_blob(&b, s, iface->proto_handler->config_params);
index 698fedb645761116641a017fc3db50fc4a50429f..18322d7e4ad6b961184cf21b89fba9d4ad5aa9e6 100644 (file)
@@ -538,7 +538,7 @@ void interface_set_proto_state(struct interface *iface, struct interface_proto_s
 
 void
 interface_init(struct interface *iface, const char *name,
-              struct blob_attr *config, bool dynamic)
+              struct blob_attr *config)
 {
        struct blob_attr *tb[IFACE_ATTR_MAX];
        struct blob_attr *cur;
@@ -610,10 +610,12 @@ interface_init(struct interface *iface, const char *name,
        iface->proto_ip.no_delegation = !blobmsg_get_bool_default(tb[IFACE_ATTR_DELEGATE], true);
 
        iface->config_autostart = iface->autostart;
-       iface->dynamic = dynamic;
+}
 
-       if (iface->dynamic)
-               iface->node.version = -1; // Don't delete on reload
+void interface_set_dynamic(struct interface *iface)
+{
+       iface->dynamic = true;
+       iface->node.version = -1; // Don't delete on reload
 }
 
 static bool __interface_add(struct interface *iface, struct blob_attr *config, bool alias)
index ca5d3761ffa61356867a29b48c4e136519af4bbb..5b04102652c71114bcf2d1566217d758d6a318e9 100644 (file)
@@ -146,7 +146,9 @@ extern struct vlist_tree interfaces;
 extern const struct uci_blob_param_list interface_attr_list;
 
 void interface_init(struct interface *iface, const char *name,
-                   struct blob_attr *config, bool dynamic);
+                   struct blob_attr *config);
+
+void interface_set_dynamic(struct interface *iface);
 
 void interface_add(struct interface *iface, struct blob_attr *config);
 bool interface_add_alias(struct interface *iface, struct blob_attr *config);
diff --git a/ubus.c b/ubus.c
index 513b40cc25ccd988ff28d87462b2548bf7c39856..cfdfcf3ae967e4b7eee97001c5a772d4ffd89bad 100644 (file)
--- a/ubus.c
+++ b/ubus.c
@@ -139,7 +139,8 @@ netifd_add_dynamic(struct ubus_context *ctx, struct ubus_object *obj,
        if (!iface)
                return UBUS_STATUS_UNKNOWN_ERROR;
 
-       interface_init(iface, name, msg, true);
+       interface_init(iface, name, msg);
+       interface_set_dynamic(iface);
        iface->device_config = true;
 
        config = blob_memdup(msg);