Ticket refs #11692 :move /etc/config/dmmap to /etc/icwmpd/dmmap

This commit is contained in:
imen.bhiri 2017-04-10 14:54:41 +01:00
parent 188ef4e5ff
commit c628b80e78
4 changed files with 102 additions and 89 deletions

View file

@ -328,9 +328,22 @@ char *get_last_instance_lev2(char *package, char *section, char *opt_inst, char
{
struct uci_section *s;
char *instance = NULL;
char *last_inst = NULL;
uci_foreach_option_cont(package, section, opt_check, value_check, s) {
instance = update_instance(s, instance, opt_inst);
if (package == DMMAP)
{
uci_path_foreach_option_cont(icwmpd, package, section, opt_check, value_check, s) {
instance = update_instance_icwmpd(s, last_inst, opt_inst);
if(last_inst)
dmfree(last_inst);
last_inst = dmstrdup(instance);
}
}
else
{
uci_foreach_option_cont(package, section, opt_check, value_check, s) {
instance = update_instance(s, instance, opt_inst);
}
}
return instance;
}

View file

@ -83,13 +83,13 @@ char *layer2_get_last_section_instance(char *package, char *section, char *opt_i
struct uci_section *s, *last = NULL;
char *inst = NULL;
uci_foreach_sections(package, section, s)
uci_path_foreach_sections(icwmpd, package, section, s)
{
last = s;
}
if (last) {
dmuci_get_value_by_section_string(last, opt_inst, &inst);
inst = update_instance(last, inst, opt_inst);
inst = update_instance_icwmpd(last, inst, opt_inst);
}
return inst;
}
@ -100,17 +100,17 @@ int update_bridge_vlan_config(char *vid, char *bridge_key)
char *add_value, *instance, *p;
char *name;
uci_foreach_option_eq("dmmap", "vlan_bridge", "vid", vid, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "vid", vid, s)
{
return 0;
}
instance = get_last_instance_lev2("dmmap", "vlan_bridge", "vlan_instance", "bridgekey", bridge_key);
dmuci_add_section("dmmap", "vlan_bridge", &ss, &add_value);
instance = update_instance(ss, instance, "vlan_instance");
instance = get_last_instance_lev2(DMMAP, "vlan_bridge", "vlan_instance", "bridgekey", bridge_key);
DMUCI_ADD_SECTION(icwmpd, "dmmap", "vlan_bridge", &ss, &add_value);
instance = update_instance_icwmpd(ss, instance, "vlan_instance");
dmasprintf(&name, "vlan_%s.%s", bridge_key, instance);
dmuci_set_value_by_section(ss, "bridgekey", bridge_key);
dmuci_set_value_by_section(ss, "name", name);
dmuci_set_value_by_section(ss, "vid", vid);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, ss, "bridgekey", bridge_key);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, ss, "name", name);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, ss, "vid", vid);
dmfree(name);
return 0;
}
@ -145,7 +145,7 @@ void update_add_vlan_interfaces(char *bridge_key, char *vid)
bool found;
struct uci_section *s, *vlan_interface_s, *vi_sec;
uci_foreach_option_eq("dmmap", "marking-bridge", "bridgekey", bridge_key, s) {
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "bridgekey", bridge_key, s) {
dmuci_get_value_by_section_string(s, "baseifname", &baseifname);
p = baseifname_dup;
dmstrappendstr(p, baseifname);
@ -193,7 +193,7 @@ void update_add_vlan_to_bridge_interface(char *bridge_key, struct uci_section *d
ptr = ifname_dup;
dmstrappendstr(ptr, ifname);
dmstrappendend(ptr);
uci_foreach_option_eq("dmmap", "marking-bridge", "bridgekey", bridge_key, marking_bridge_s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "bridgekey", bridge_key, marking_bridge_s)
{
dmuci_get_value_by_section_string(marking_bridge_s, "baseifname", &baseifname);
if (strncmp(baseifname, wan_baseifname, 4) == 0
@ -245,7 +245,7 @@ void update_markinginterface_list(struct uci_section *interface_section, char *b
while (ifname_element != NULL) {
get_baseifname_from_ifname(ifname_element, baseifname);
found = false;
uci_foreach_option_eq("dmmap", "marking-bridge", "baseifname", baseifname, marking_section)
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "baseifname", baseifname, marking_section)
{
dmuci_get_value_by_section_string(marking_section, "bridgekey", &bridgekey);
if (strcmp(bridgekey, bridge_key) == 0) {
@ -256,18 +256,18 @@ void update_markinginterface_list(struct uci_section *interface_section, char *b
if (found){
goto nextifname;
}
uci_foreach_option_eq("dmmap", "available-bridge", "baseifname", baseifname, ciface)
uci_path_foreach_option_eq(icwmpd, "dmmap", "available-bridge", "baseifname", baseifname, ciface)
{
dmuci_get_value_by_section_string(ciface, "key", &interfacekey);
break;
}
if (!ciface) goto nextifname;
instance = layer2_get_last_section_instance("dmmap", "marking-bridge", "marking_instance");
dmuci_add_section("dmmap", "marking-bridge", &new_marking_section, &add_value);
dmuci_set_value_by_section(new_marking_section, "baseifname", baseifname);
dmuci_set_value_by_section(new_marking_section, "bridgekey", bridge_key);
dmuci_set_value_by_section(new_marking_section, "interfacekey", interfacekey);
update_instance(new_marking_section, instance, "marking_instance");
DMUCI_ADD_SECTION(icwmpd, "dmmap", "marking-bridge", &new_marking_section, &add_value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, new_marking_section, "baseifname", baseifname);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, new_marking_section, "bridgekey", bridge_key);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, new_marking_section, "interfacekey", interfacekey);
update_instance_icwmpd(new_marking_section, instance, "marking_instance");
nextifname:
ifname_element = strtok_r(NULL, " ", &spch);
@ -276,7 +276,7 @@ nextifname:
new_marking_section = NULL;
uci_foreach_option_eq("wireless", "wifi-iface", "network", section_name(interface_section), wireless_section) {
found = false;
uci_foreach_option_eq("dmmap", "marking-bridge", "baseifname", section_name(wireless_section), marking_section)
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "baseifname", section_name(wireless_section), marking_section)
{
dmuci_get_value_by_section_string(marking_section, "bridgekey", &bridgekey);
if (strcmp(bridgekey, bridge_key) == 0) {
@ -285,18 +285,18 @@ nextifname:
}
}
if (found) continue;
uci_foreach_option_eq("dmmap", "available-bridge", "baseifname", section_name(wireless_section), ciface)
uci_path_foreach_option_eq(icwmpd, "dmmap", "available-bridge", "baseifname", section_name(wireless_section), ciface)
{
dmuci_get_value_by_section_string(ciface, "key", &interfacekey);
break;
}
if (!ciface) continue;
instance = layer2_get_last_section_instance("dmmap", "marking-bridge", "marking_instance");
dmuci_add_section("dmmap", "marking-bridge", &new_marking_section, &add_value);
dmuci_set_value_by_section(new_marking_section, "baseifname", section_name(wireless_section));
dmuci_set_value_by_section(new_marking_section, "bridgekey", bridge_key);
dmuci_set_value_by_section(new_marking_section, "interfacekey", interfacekey);
update_instance(new_marking_section, instance, "marking_instance");
DMUCI_ADD_SECTION(icwmpd, "dmmap", "marking-bridge", &new_marking_section, &add_value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, new_marking_section, "baseifname", section_name(wireless_section));
DMUCI_SET_VALUE_BY_SECTION(icwmpd, new_marking_section, "bridgekey", bridge_key);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, new_marking_section, "interfacekey", interfacekey);
update_instance_icwmpd(new_marking_section, instance, "marking_instance");
}
}
@ -340,7 +340,7 @@ int set_marking_bridge_key_sub(char *refparam, struct dmctx *ctx, char *value)
|| strncmp(baseifname, "ptm", 3) == 0
|| strncmp(baseifname, "atm", 3) == 0) {
found = false;
uci_foreach_option_eq("dmmap", "marking-bridge", "baseifname", baseifname, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "baseifname", baseifname, s)
{
dmuci_get_value_by_section_string(s, "bridgekey", &bridgekey);
if (strcmp(bridgekey, old_bridge_key) == 0) {
@ -349,7 +349,7 @@ int set_marking_bridge_key_sub(char *refparam, struct dmctx *ctx, char *value)
}
}
if (!found) {
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", old_bridge_key, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", old_bridge_key, s)
{
dmuci_get_value_by_section_string(s, "vid", &vid);
if (vid[0] == '\0') continue;
@ -368,7 +368,7 @@ int set_marking_bridge_key_sub(char *refparam, struct dmctx *ctx, char *value)
dmuci_set_value_by_section(ss, "ifname", new_ifname);
}
}
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", value, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", value, s)
{
dmuci_get_value_by_section_string(s, "vid", &vid);
if (vid[0] == '\0') continue;
@ -439,7 +439,7 @@ int set_marking_interface_key_sub(char *refparam, struct dmctx *ctx, char *value
struct args_layer2 *args = (struct args_layer2 *)ctx->args;
mb = args->layer2section;
uci_foreach_option_eq("dmmap", "available-bridge", "key", value, ab) {
uci_path_foreach_option_eq(icwmpd, "dmmap", "available-bridge", "key", value, ab) {
break;
}
if (!ab) return 0;
@ -460,23 +460,23 @@ int set_marking_interface_key_sub(char *refparam, struct dmctx *ctx, char *value
dmuci_get_value_by_section_string(ab, "baseifname", &baseifname);
if (strncmp(baseifname, "cfg", 3) == 0) {
uci_foreach_option_eq("dmmap", "marking-bridge", "baseifname", baseifname, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "baseifname", baseifname, s)
{
break;
}
if (s) return 0;
dmuci_set_value_by_section(mb, "interfacekey", value);
dmuci_set_value_by_section(mb, "baseifname", baseifname);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, mb, "interfacekey", value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, mb, "baseifname", baseifname);
if (bkey[0] == '\0' || !sbridge) return 0;
dmuci_set_value("wireless", baseifname, "network", section_name(sbridge));
}
else if (strncmp(baseifname, wan_baseifname, 4) == 0
|| strncmp(baseifname, "ptm", 3) == 0
|| strncmp(baseifname, "atm", 3) == 0) {
dmuci_set_value_by_section(mb, "interfacekey", value);
dmuci_set_value_by_section(mb, "baseifname", baseifname);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, mb, "interfacekey", value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, mb, "baseifname", baseifname);
if (bkey[0] == '\0') return 0;
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", bkey, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", bkey, s)
{
dmuci_get_value_by_section_string(s, "vid", &vid);
if (vid[0] == '\0') continue;
@ -488,13 +488,13 @@ int set_marking_interface_key_sub(char *refparam, struct dmctx *ctx, char *value
}
}
else if (strncmp(baseifname, "eth", 3) == 0) {
uci_foreach_option_eq("dmmap", "marking-bridge", "baseifname", baseifname, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "baseifname", baseifname, s)
{
break;
}
if (s) return 0;
dmuci_set_value_by_section(mb, "interfacekey", value);
dmuci_set_value_by_section(mb, "baseifname", baseifname);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, mb, "interfacekey", value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, mb, "baseifname", baseifname);
if (bkey[0] == '\0' || !sbridge) return 0;
dmuci_get_value_by_section_string(sbridge, "ifname", &ifname);
p = new_ifname;
@ -546,13 +546,13 @@ int set_bridge_vlan_enable_sub(char *refparam, struct dmctx *ctx, bool b)
dmuci_get_value_by_section_string(vb, "enable", &cval);
string_to_bool(cval, &bcval);
if (b && !bcval) {
dmuci_set_value_by_section(vb, "enable", "1");
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "enable", "1");
if (vid[0] == '\0') return 0;
update_add_vlan_interfaces(bkey, vid);
update_add_vlan_to_bridge_interface(bkey, vb);
}
else if (!b && bcval) {
dmuci_set_value_by_section(vb, "enable", "0");
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "enable", "0");
if (vid[0] == '\0') return 0;
update_remove_vlan_from_bridge_interface(bkey, vb);
}
@ -574,7 +574,7 @@ int set_bridge_vlan_name(char *refparam, struct dmctx *ctx, int action, char *va
return 0;
case VALUESET:
args = (struct args_layer2 *)ctx->args;
dmuci_set_value_by_section(args->layer2sectionlev2, "name", value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, args->layer2sectionlev2, "name", value);
return 0;
}
return 0;
@ -614,12 +614,12 @@ int set_bridge_vlan_vid_sub(struct uci_section *vb, char *value)
if (enable[0] == '1') {
dmuci_get_value_by_section_string(vb, "bridgekey", &bkey);
update_remove_vlan_from_bridge_interface(bkey, vb);
dmuci_set_value_by_section(vb, "vid", value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "vid", value);
update_add_vlan_interfaces(bkey, value);
update_add_vlan_to_bridge_interface(bkey, vb);
}
else {
dmuci_set_value_by_section(vb, "vid", value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "vid", value);
}
return 0;
@ -693,7 +693,7 @@ int get_bridge_vlanid(char *refparam, struct dmctx *ctx, char **value)
struct args_layer2 *args = (struct args_layer2 *)ctx->args;
*value = "";
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", args->bridge_instance, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", args->bridge_instance, s)
{
dmuci_get_value_by_section_string(s, "vid", value);
break;
@ -724,19 +724,19 @@ int set_bridge_vlanid_sub(char *refparam, struct dmctx *ctx, char *value)
struct uci_section *s = NULL, *vb;;
struct args_layer2 *args = (struct args_layer2 *)ctx->args;
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", args->bridge_instance, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", args->bridge_instance, s)
{
break;
}
if (s == NULL) {
instance = get_last_instance_lev2("dmmap", "vlan_bridge", "vlan_instance", "bridgekey", args->bridge_instance);
dmuci_add_section("dmmap", "vlan_bridge", &vb, &add_value);
instance = update_instance(vb, instance, "vlan_instance");
instance = get_last_instance_lev2(DMMAP, "vlan_bridge", "vlan_instance", "bridgekey", args->bridge_instance);
DMUCI_ADD_SECTION(icwmpd, "dmmap", "vlan_bridge", &vb, &add_value);
instance = update_instance_icwmpd(vb, instance, "vlan_instance");
dmasprintf(&name, "vlan_%s.%s", args->bridge_instance, instance);
dmuci_set_value_by_section(vb, "bridgekey", args->bridge_instance);
dmuci_set_value_by_section(vb, "name", name);
dmuci_set_value_by_section(vb, "enable", "0");
dmuci_set_value_by_section(vb, "vid", value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "bridgekey", args->bridge_instance);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "name", name);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "enable", "0");
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vb, "vid", value);
dmfree(name);
}
else {
@ -793,14 +793,14 @@ struct uci_section *update_availableinterface_list(struct dmctx *ctx, char *ifac
struct uci_section *available_bridge = NULL;
char *add_value;
uci_foreach_option_eq("dmmap", "available-bridge", "baseifname", iface, s)
uci_path_foreach_option_eq(icwmpd, "dmmap", "available-bridge", "baseifname", iface, s)
{
*instance = handle_update_instance(1, ctx, instance_last, update_instance_alias, 3, s, "key", "avbralias");
*instance = handle_update_instance(1, ctx, instance_last, update_instance_alias_icwmpd, 3, s, "key", "avbralias");
return s;
}
dmuci_add_section("dmmap", "available-bridge", &available_bridge, &add_value);
dmuci_set_value_by_section(available_bridge, "baseifname", iface);
*instance = handle_update_instance(1, ctx, instance_last, update_instance_alias, 3, available_bridge, "key", "avbralias");
DMUCI_ADD_SECTION(icwmpd, "dmmap", "available-bridge", &available_bridge, &add_value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, available_bridge, "baseifname", iface);
*instance = handle_update_instance(1, ctx, instance_last, update_instance_alias_icwmpd, 3, available_bridge, "key", "avbralias");
return available_bridge;
}
@ -834,13 +834,13 @@ int delete_layer2bridging_bridge(struct dmctx *ctx)
dmuci_get_value_by_section_string(args_bridge->layer2section, "bridge_instance", &bridge_instance);
dmuci_set_value_by_section(args_bridge->layer2section, "type", "");
dmuci_set_value_by_section(args_bridge->layer2section, "bridge_instance", "");
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", bridge_instance, vlan_s) {
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", bridge_instance, vlan_s) {
if (prev_s)
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
prev_s = vlan_s;
}
if (prev_s)
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
return 0;
}
@ -854,14 +854,14 @@ int delete_layer2bridging_bridge_all(struct dmctx *ctx)
dmuci_set_value_by_section(bridge_s, "type", "");
dmuci_set_value_by_section(bridge_s, "bridge_instance", "");
}
uci_foreach_sections("dmmap", "vlan_bridge", vlan_s) {
uci_path_foreach_sections(icwmpd, "dmmap", "vlan_bridge", vlan_s) {
if(prev_s != NULL && bridgekey[0] != '\0')
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
prev_s = vlan_s;
dmuci_get_value_by_section_string(vlan_s, "bridgekey", &bridgekey);
}
if(prev_s != NULL && bridgekey[0] != '\0')
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
return 0;
}
@ -871,9 +871,9 @@ int add_layer2bridging_marking(struct dmctx *ctx, char **instance)
char *value;
struct uci_section *marking_s;
last_instance = get_last_instance("dmmap", "marking-bridge", "marking_instance");
dmuci_add_section("dmmap", "marking-bridge", &marking_s, &value);
*instance = update_instance(marking_s, last_instance, "marking_instance");
last_instance = get_last_instance(DMMAP, "marking-bridge", "marking_instance");
DMUCI_ADD_SECTION(icwmpd, "dmmap", "marking-bridge", &marking_s, &value);
*instance = update_instance_icwmpd(marking_s, last_instance, "marking_instance");
return 0;
}
@ -892,7 +892,7 @@ void remove_config_interfaces(char *baseifname, char *bridge_key, struct uci_sec
|| strncmp(baseifname, "ptm", 3) == 0
|| strncmp(baseifname, "atm", 3) == 0)
{
uci_foreach_option_eq("dmmap", "marking-bridge", "baseifname", baseifname, marking_s) {
uci_path_foreach_option_eq(icwmpd, "dmmap", "marking-bridge", "baseifname", baseifname, marking_s) {
dmuci_get_value_by_section_string(marking_s, "bridgekey", &b_key);
dmuci_get_value_by_section_string(marking_s, "marking_instance", &m_instance);
if(strcmp(b_key, bridge_key) == 0 && strcmp(m_instance, mbi) != 0) {
@ -902,7 +902,7 @@ void remove_config_interfaces(char *baseifname, char *bridge_key, struct uci_sec
}
if (!found)
{
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", bridge_key, vlan_s) {
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", bridge_key, vlan_s) {
dmuci_get_value_by_section_string(vlan_s, "vid", &vid);
if(vid[0] == '\0')
continue;
@ -949,12 +949,12 @@ int delete_layer2bridging_marking_all(struct dmctx *ctx)
char *bifname, *b_key, *m_instance;
struct uci_section *bridge_s;
uci_foreach_sections("dmmap", "marking-bridge", mark_s) {
uci_path_foreach_sections(icwmpd, "dmmap", "marking-bridge", mark_s) {
dmuci_get_value_by_section_string(mark_s, "bridgekey", &b_key);
dmuci_get_value_by_section_string(mark_s, "baseifname", &bifname);
dmuci_get_value_by_section_string(mark_s, "marking_instance", &m_instance);
if (prev_s != NULL) {
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
}
prev_s = mark_s;
if (b_key[0] == '\0')
@ -965,7 +965,7 @@ int delete_layer2bridging_marking_all(struct dmctx *ctx)
}
}
if(prev_s != NULL)
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
return 0;
}
@ -977,17 +977,17 @@ int add_layer2bridging_bridge_vlan(struct dmctx *ctx, char **instance)
char buf[16];
char *v_name = buf;
last_instance = get_last_instance_lev2("dmmap", "vlan_bridge", "vlan_instance", "bridgekey", args_bridge->bridge_instance);
dmuci_add_section("dmmap", "vlan_bridge", &vlan_s, &value);
dmuci_set_value_by_section(vlan_s, "bridgekey", args_bridge->bridge_instance);
dmuci_set_value_by_section(vlan_s, "enable", "0");
*instance = update_instance(vlan_s, last_instance, "vlan_instance");
last_instance = get_last_instance_lev2(DMMAP, "vlan_bridge", "vlan_instance", "bridgekey", args_bridge->bridge_instance);
DMUCI_ADD_SECTION(icwmpd, "dmmap", "vlan_bridge", &vlan_s, &value);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vlan_s, "bridgekey", args_bridge->bridge_instance);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vlan_s, "enable", "0");
*instance = update_instance_icwmpd(vlan_s, last_instance, "vlan_instance");
dmstrappendstr(v_name, "vlan_");
dmstrappendstr(v_name, args_bridge->bridge_instance);
dmstrappendchr(v_name, '.');
dmstrappendstr(v_name, *instance);
dmstrappendend(v_name);
dmuci_set_value_by_section(vlan_s, "name", v_name);
DMUCI_SET_VALUE_BY_SECTION(icwmpd, vlan_s, "name", v_name);
return 0;
}
@ -1001,7 +1001,7 @@ int delete_layer2bridging_bridge_vlan(struct dmctx *ctx)
dmuci_get_value_by_section_string(args_bridge->layer2section, "ifname", &ifname);
remove_vid_interfaces_from_ifname(vid, ifname, new_ifname);
dmuci_set_value_by_section(args_bridge->layer2section, "ifname", new_ifname);
dmuci_delete_by_section(args_bridge->layer2sectionlev2, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, args_bridge->layer2sectionlev2, NULL, NULL);
return 0;
}
@ -1012,17 +1012,17 @@ int delete_layer2bridging_bridge_vlan_all(struct dmctx *ctx)
struct uci_section *vlan_s, *prev_s = NULL ;
char new_ifname[128];
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", args_bridge->bridge_instance, vlan_s) {
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", args_bridge->bridge_instance, vlan_s) {
dmuci_get_value_by_section_string(vlan_s, "vid", &vid);
dmuci_get_value_by_section_string(args_bridge->layer2section, "ifname", &ifname);
remove_vid_interfaces_from_ifname(vid, ifname, new_ifname);
dmuci_set_value_by_section(args_bridge->layer2section, "ifname", new_ifname);
if (prev_s != NULL)
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
prev_s = vlan_s;
}
if (prev_s != NULL)
dmuci_delete_by_section(prev_s, NULL, NULL);
DMUCI_DELETE_BY_SECTION(icwmpd, prev_s, NULL, NULL);
return 0;
}
@ -1160,8 +1160,8 @@ inline int entry_layer2_marking(struct dmctx *ctx)
char *marking_instance = NULL, *marking_instance_last = NULL;
struct uci_section *marking_s = NULL;
uci_foreach_sections("dmmap", "marking-bridge", marking_s) {
marking_instance = handle_update_instance(1, ctx, &marking_instance_last, update_instance_alias, 3, marking_s, "marking_instance", "marking_alias");
uci_path_foreach_sections(icwmpd, "dmmap", "marking-bridge", marking_s) {
marking_instance = handle_update_instance(1, ctx, &marking_instance_last, update_instance_alias_icwmpd, 3, marking_s, "marking_instance", "marking_alias");
init_args_layer2(ctx, marking_s, NULL, NULL, NULL, NULL, NULL);
SUBENTRY(entry_layer2_marking_instance, ctx, marking_instance);
}
@ -1174,8 +1174,8 @@ inline int entry_layer2_bridge_vlan(struct dmctx *ctx, char *bridge_instance, ch
char *vlan_instance = NULL, *vlan_instance_last = NULL;
update_bridge_all_vlan_config_bybridge(ctx);
uci_foreach_option_eq("dmmap", "vlan_bridge", "bridgekey", bridge_instance_last, ss) {
vlan_instance = handle_update_instance(2, ctx, &vlan_instance_last, update_instance_alias, 3, ss, "vlan_instance", "vlan_alias");
uci_path_foreach_option_eq(icwmpd, "dmmap", "vlan_bridge", "bridgekey", bridge_instance_last, ss) {
vlan_instance = handle_update_instance(2, ctx, &vlan_instance_last, update_instance_alias_icwmpd, 3, ss, "vlan_instance", "vlan_alias");
init_args_layer2_vlan(ctx, ss);
SUBENTRY(entry_layer2_bridge_vlan_instance, ctx, bridge_instance, vlan_instance);
}

View file

@ -785,7 +785,7 @@ int add_br_port(struct dmctx *ctx, char **instance)
int m = get_br_port_last_inst(cur_bridging_args.br_key);
dmasprintf(instance, "%d", m+1);
dmuci_add_section("dmmap", "bridge_port", &br_port_s, &value);
DMUCI_ADD_SECTION(icwmpd, "dmmap", "bridge_port", &br_port_s, &value);
dmuci_set_value_by_section(br_port_s, "bridge_key", cur_bridging_args.br_key);
dmuci_set_value_by_section(br_port_s, "bridge_port_instance", *instance);
dmuci_set_value_by_section(br_port_s, "mg_port", "false");

View file

@ -213,7 +213,7 @@ struct uci_section *update_route_dynamic_section(struct proc_routing *proute)
{
struct uci_section *s = NULL;
char *name, *mask;
uci_foreach_option_eq_icwmpd("dmmap", "route_dynamic", "target", proute->destination, s) {
uci_path_foreach_option_eq(icwmpd, "dmmap", "route_dynamic", "target", proute->destination, s) {
dmuci_get_value_by_section_string(s, "netmask", &mask);
if (strcmp(proute->mask, mask) == 0){
return s;