summaryrefslogtreecommitdiffhomepage
path: root/config.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-09-05 06:30:05 +0200
committerFelix Fietkau <nbd@openwrt.org>2011-09-05 06:30:05 +0200
commitdf13b3ade3f366446033214b3a85228005c014ea (patch)
tree0fb722d2055cea789a5c3a378bcc14fb1d498c90 /config.c
parent409adfc2256d483b43b4cf92025e575212ea3372 (diff)
add config state tracking
Diffstat (limited to 'config.c')
-rw-r--r--config.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/config.c b/config.c
index 2fba534..31ebb8d 100644
--- a/config.c
+++ b/config.c
@@ -10,6 +10,7 @@ struct uci_context *uci_ctx;
static struct uci_package *uci_network;
bool config_init = false;
static struct blob_buf b;
+static unsigned int config_version = 1;
static void uci_attr_to_blob(struct blob_buf *b, const char *str,
@@ -138,6 +139,16 @@ config_parse_bridge_interface(struct uci_section *s)
return 0;
}
+void
+config_set_state(struct config_state *state, struct blob_attr *attr)
+{
+ state->data = malloc(blob_pad_len(attr));
+ if (!state->data)
+ return;
+
+ memcpy(state->data, attr, blob_pad_len(attr));
+}
+
static void
config_parse_interface(struct uci_section *s)
{
@@ -163,6 +174,7 @@ config_parse_interface(struct uci_section *s)
uci_to_blob(&b, s, iface->proto_handler->config_params);
proto_init_interface(iface, b.head);
+ iface->config.version = config_version;
}
void