From be6a8fc69fc257f6e3bbd8864b7b1d25b8e77190 Mon Sep 17 00:00:00 2001 From: Amin Ben Ramdhane Date: Tue, 22 Feb 2022 17:49:50 +0100 Subject: [PATCH] IEEE1905: create ieee1905->forwarding_table section if it doesn't exist --- dmtree/tr181/ieee1905.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dmtree/tr181/ieee1905.c b/dmtree/tr181/ieee1905.c index a2ace95c..c32bb6a8 100644 --- a/dmtree/tr181/ieee1905.c +++ b/dmtree/tr181/ieee1905.c @@ -660,6 +660,7 @@ static int get_IEEE1905ALForwardingTable_SetForwardingEnabled(char *refparam, st static int set_IEEE1905ALForwardingTable_SetForwardingEnabled(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { + int res = 0; bool b; switch (action) { @@ -669,7 +670,14 @@ static int set_IEEE1905ALForwardingTable_SetForwardingEnabled(char *refparam, st break; case VALUESET: string_to_bool(value, &b); - dmuci_set_value("ieee1905", "forwarding_table", "forwarding_enabled", b ? "1" : "0"); + res = dmuci_set_value("ieee1905", "forwarding_table", "forwarding_enabled", b ? "1" : "0"); + if (res) { + struct uci_section *s = NULL; + + dmuci_add_section("ieee1905", "forwarding_table", &s); + dmuci_rename_section_by_section(s, "forwarding_table"); + dmuci_set_value("ieee1905", "forwarding_table", "forwarding_enabled", b ? "1" : "0"); + } break; } return 0;