mirror of
https://dev.iopsys.eu/bbf/icwmp.git
synced 2026-03-12 03:58:34 +01:00
Ticket refs #16134: TR181: Wrong Behavior for Object Device.NAT.InterfaceSetting
This commit is contained in:
parent
ae2d5388b8
commit
02c09ba435
16 changed files with 33 additions and 24 deletions
|
|
@ -312,7 +312,7 @@ struct uci_section *create_firewall_zone_config(char *fwl, char *iface, char *in
|
|||
struct uci_section *s;
|
||||
char *value, *name;
|
||||
|
||||
dmuci_add_section("firewall", "zone", &s, &value);
|
||||
dmuci_add_section_and_rename("firewall", "zone", &s, &value);
|
||||
dmasprintf(&name, "%s_%s", fwl, iface);
|
||||
dmuci_set_value_by_section(s, "name", name);
|
||||
dmuci_set_value_by_section(s, "input", input);
|
||||
|
|
@ -643,7 +643,7 @@ void update_section_option_list(char *config, char *section, char *option, char
|
|||
dmuci_delete_by_section(prev_s, NULL, NULL);
|
||||
}
|
||||
if (add_sec) {
|
||||
dmuci_add_section(config, section, &s, &add_value);
|
||||
dmuci_add_section_and_rename(config, section, &s, &add_value);
|
||||
dmuci_set_value_by_section(s, option, val);
|
||||
dmuci_set_value_by_section(s, option_2, val_2);
|
||||
}
|
||||
|
|
@ -710,7 +710,7 @@ void update_section_list(char *config, char *section, char *option, int number,
|
|||
}
|
||||
}
|
||||
while (i < number) {
|
||||
dmuci_add_section(config, section, &s, &add_value);
|
||||
dmuci_add_section_and_rename(config, section, &s, &add_value);
|
||||
if (option)dmuci_set_value_by_section(s, option, filter);
|
||||
if (option1)dmuci_set_value_by_section(s, option1, val1);
|
||||
if (option2)dmuci_set_value_by_section(s, option2, val2);
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ int add_dropbear_instance(char *refparam, struct dmctx *ctx, void *data, char **
|
|||
check_create_dmmap_package("dmmap_dropbear");
|
||||
instance = get_last_instance_icwmpd("dmmap_dropbear", "dropbear", "dropbearinstance");
|
||||
|
||||
dmuci_add_section("dropbear", "dropbear", &dropbear_sec, &value);
|
||||
dmuci_add_section_and_rename("dropbear", "dropbear", &dropbear_sec, &value);
|
||||
dmuci_set_value_by_section(dropbear_sec, "verbose", "0");
|
||||
dmuci_set_value_by_section(dropbear_sec, "Port", "22");
|
||||
dmuci_set_value_by_section(dropbear_sec, "RootLogin", "1");
|
||||
|
|
|
|||
|
|
@ -630,7 +630,7 @@ int add_ipacccfg_rule(char *refparam, struct dmctx *ctx, void *data, char **inst
|
|||
|
||||
check_create_dmmap_package("dmmap_firewall");
|
||||
instance = get_last_instance_icwmpd("dmmap_firewall", "rule", "fruleinstance");
|
||||
dmuci_add_section("firewall", "rule", &rule, &value);
|
||||
dmuci_add_section_and_rename("firewall", "rule", &rule, &value);
|
||||
dmuci_set_value_by_section(rule, "type", "generic");
|
||||
dmuci_set_value_by_section(rule, "name", "new_rule");
|
||||
dmuci_set_value_by_section(rule, "proto", "all");
|
||||
|
|
@ -692,7 +692,7 @@ int add_ipacccfg_port_forwarding(char *refparam, struct dmctx *ctx, void *data,
|
|||
|
||||
check_create_dmmap_package("dmmap_firewall");
|
||||
instance = get_last_instance_icwmpd("dmmap_firewall", "redirect", "forwardinstance");
|
||||
dmuci_add_section("firewall", "redirect", &redirect, &value);
|
||||
dmuci_add_section_and_rename("firewall", "redirect", &redirect, &value);
|
||||
dmuci_set_value_by_section(redirect, "enabled", "0");
|
||||
dmuci_set_value_by_section(redirect, "target", "DNAT");
|
||||
dmuci_set_value_by_section(redirect, "proto", "tcp udp");
|
||||
|
|
|
|||
|
|
@ -524,7 +524,7 @@ int add_owsd_listen(char *refparam, struct dmctx *ctx, void *data, char **instan
|
|||
check_create_dmmap_package("dmmap_owsd");
|
||||
instance = get_last_instance_icwmpd("dmmap_owsd", "owsd-listen", "olisteninstance");
|
||||
|
||||
dmuci_add_section("owsd", "owsd-listen", &listen_sec, &value);
|
||||
dmuci_add_section_and_rename("owsd", "owsd-listen", &listen_sec, &value);
|
||||
dmuci_set_value_by_section(listen_sec, "ipv6", "on");
|
||||
dmuci_set_value_by_section(listen_sec, "whitelist_interface_as_origin", "1");
|
||||
dmuci_add_list_value_by_section(listen_sec, "origin", "*");
|
||||
|
|
|
|||
|
|
@ -76,8 +76,8 @@ int add_xmpp_connection(char *refparam, struct dmctx *ctx, void *data, char **in
|
|||
char *value1, *value2, *last_inst;
|
||||
|
||||
last_inst = get_last_instance("cwmp_xmpp", "xmpp_connection", "connection_instance");
|
||||
dmuci_add_section("cwmp_xmpp", "xmpp_connection", &xmpp_connection, &value1);
|
||||
dmuci_add_section("cwmp_xmpp", "xmpp_connection_server", &xmpp_connection_server, &value2);
|
||||
dmuci_add_section_and_rename("cwmp_xmpp", "xmpp_connection", &xmpp_connection, &value1);
|
||||
dmuci_add_section_and_rename("cwmp_xmpp", "xmpp_connection_server", &xmpp_connection_server, &value2);
|
||||
dmasprintf(instancepara, "%d", atoi(last_inst)+1);
|
||||
dmuci_set_value_by_section(xmpp_connection, "connection_instance", *instancepara);
|
||||
dmuci_set_value_by_section(xmpp_connection, "enable", "0");
|
||||
|
|
|
|||
|
|
@ -519,7 +519,7 @@ int add_dhcp_conditional_serving_pool(char *refparam, struct dmctx *ctx, void *d
|
|||
|
||||
check_create_dmmap_package("dmmap_dhcp");
|
||||
instance = get_last_instance_icwmpd("dmmap_dhcp", "vendorclass", "poulinstance");
|
||||
dmuci_add_section("dhcp", "vendorclass", &s, &value);
|
||||
dmuci_add_section_and_rename("dhcp", "vendorclass", &s, &value);
|
||||
dmuci_set_value_by_section(s, "dhcp_option", "");
|
||||
*instancepara = update_instance(s, instance, "poulinstance");
|
||||
|
||||
|
|
@ -610,7 +610,7 @@ int add_landevice_dhcpstaticaddress(char *refparam, struct dmctx *ctx, void *dat
|
|||
|
||||
check_create_dmmap_package("dmmap_dhcp");
|
||||
instance = get_last_instance_lev2_icwmpd("dhcp", "host", "dmmap_dhcp", "ldhcpinstance", "dhcp", lan_name);
|
||||
dmuci_add_section("dhcp", "host", &s, &value);
|
||||
dmuci_add_section_and_rename("dhcp", "host", &s, &value);
|
||||
dmuci_set_value_by_section(s, "dhcp", lan_name);
|
||||
dmuci_add_section_icwmpd("dmmap_dhcp", "host", &dmmap_dhcpstcaddress, &v);
|
||||
dmuci_set_value_by_section(dmmap_dhcpstcaddress, "section_name", section_name(s));
|
||||
|
|
@ -681,7 +681,7 @@ int add_landevice_wlanconfiguration(char *refparam, struct dmctx *ctx, void *dat
|
|||
|
||||
instance = get_last_instance_lev2_icwmpd("wireless", "wifi-iface", "dmmap_wireless", "lwlaninstance", "network", lan_name);
|
||||
sprintf(ssid, "Inteno_%s_%d", lan_name, instance ? (atoi(instance)+1) : 1);
|
||||
dmuci_add_section("wireless", "wifi-iface", &s, &value);
|
||||
dmuci_add_section_and_rename("wireless", "wifi-iface", &s, &value);
|
||||
get_wifi_device_name(&wifi_dev_name);
|
||||
dmuci_set_value_by_section(s, "device", wifi_dev_name);
|
||||
dmuci_set_value_by_section(s, "encryption", "none");
|
||||
|
|
@ -1122,7 +1122,7 @@ int set_lan_dhcp_reserved_addresses(char *refparam, struct dmctx *ctx, void *dat
|
|||
if (n_ip < n_min && n_ip > n_max)
|
||||
continue;
|
||||
else {
|
||||
dmuci_add_section("dhcp", "host", &dhcp_section, &val);
|
||||
dmuci_add_section_and_rename("dhcp", "host", &dhcp_section, &val);
|
||||
dmuci_set_value_by_section(dhcp_section, "dhcp", lan_name);
|
||||
dmuci_set_value_by_section(dhcp_section, "ip", pch);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -261,7 +261,7 @@ inline int add_wvlan(char *baseifname, char *ifname, char *vid, char *prioprity,
|
|||
dmuci_set_value_by_section(ss, "priority", prioprity);
|
||||
return 0;
|
||||
}
|
||||
dmuci_add_section("network", "device", &vlan_interface_s, &add_value);
|
||||
dmuci_add_section_and_rename("network", "device", &vlan_interface_s, &add_value);
|
||||
dmuci_set_value_by_section(ss, "type", "8021q");
|
||||
dmuci_set_value_by_section(ss, "ifname", baseifname);
|
||||
dmuci_set_value_by_section(ss, "name", ifname);
|
||||
|
|
@ -1668,7 +1668,7 @@ int set_wan_ip_link_connection_igmp_enabled(char *refparam, struct dmctx *ctx, v
|
|||
dmuci_get_value_by_section_string(zone, "name", &zname);
|
||||
}
|
||||
if(rule == NULL) {
|
||||
dmuci_add_section("firewall", "rule", &rule, &val);
|
||||
dmuci_add_section_and_rename("firewall", "rule", &rule, &val);
|
||||
dmuci_set_value_by_section(rule, "src", zname);
|
||||
dmuci_set_value_by_section(rule, "proto", "igmp");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -859,7 +859,7 @@ int add_br_vlan(char *refparam, struct dmctx *ctx, void *data, char **instance)
|
|||
last_vid = get_last_vid();
|
||||
dmasprintf(&name, "%s.%d", wan_baseifname, last_vid ? atoi(last_vid)+ 1 : 1001);
|
||||
dmasprintf(&vid, "%d", last_vid ? atoi(last_vid)+ 1 : 1001);
|
||||
dmuci_add_section("network", "device", &vlan_s, &value);
|
||||
dmuci_add_section_and_rename("network", "device", &vlan_s, &value);
|
||||
dmuci_rename_section_by_section(vlan_s, vlan_name);
|
||||
dmuci_set_value_by_section(vlan_s, "priority", "0");
|
||||
dmuci_set_value_by_section(vlan_s, "type", "8021q");
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ int add_dhcp_server(char *refparam, struct dmctx *ctx, void *data, char **instan
|
|||
|
||||
check_create_dmmap_package("dmmap_dhcp");
|
||||
instance = get_last_instance_icwmpd("dmmap_dhcp", "dhcp", "dhcp_instance");
|
||||
dmuci_add_section("dhcp", "dhcp", &s, &value);
|
||||
dmuci_add_section_and_rename("dhcp", "dhcp", &s, &value);
|
||||
dmuci_set_value_by_section(s, "start", "100");
|
||||
dmuci_set_value_by_section(s, "leasetime", "12h");
|
||||
dmuci_set_value_by_section(s, "limit", "150");
|
||||
|
|
@ -189,7 +189,7 @@ int add_dhcp_staticaddress(char *refparam, struct dmctx *ctx, void *data, char *
|
|||
|
||||
check_create_dmmap_package("dmmap_dhcp");
|
||||
instance = get_last_instance_lev2_icwmpd("dhcp", "host", "dmmap_dhcp", "ldhcpinstance", "dhcp", ((struct dhcp_args *)data)->interface);
|
||||
dmuci_add_section("dhcp", "host", &s, &value);
|
||||
dmuci_add_section_and_rename("dhcp", "host", &s, &value);
|
||||
dmuci_set_value_by_section(s, "dhcp", ((struct dhcp_args *)data)->interface);
|
||||
|
||||
|
||||
|
|
@ -607,7 +607,7 @@ int set_dhcp_reserved_addresses(char *refparam, struct dmctx *ctx, void *data, c
|
|||
if (n_ip < n_min && n_ip > n_max)
|
||||
continue;
|
||||
else {
|
||||
dmuci_add_section("dhcp", "host", &dhcp_section, &val);
|
||||
dmuci_add_section_and_rename("dhcp", "host", &dhcp_section, &val);
|
||||
dmuci_set_value_by_section(dhcp_section, "dhcp", ((struct dhcp_args *)data)->interface);
|
||||
dmuci_set_value_by_section(dhcp_section, "ip", pch);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ int add_NAT_InterfaceSetting(char *refparam, struct dmctx *ctx, void *data, char
|
|||
check_create_dmmap_package("dmmap_firewall");
|
||||
inst = get_last_instance_icwmpd("dmmap_firewall", "zone", "natinstance");
|
||||
sprintf(name, "NAT_%d", inst ? (atoi(inst)+1) : 1);
|
||||
dmuci_add_section("firewall", "zone", &s, &value);
|
||||
dmuci_add_section_and_rename("firewall", "zone", &s, &value);
|
||||
dmuci_set_value_by_section(s, "input", "REJECT");
|
||||
dmuci_set_value_by_section(s, "output", "ACCEPT");
|
||||
dmuci_set_value_by_section(s, "forward", "REJECT");
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ static void add_default_rule(char *port, char *enable, char *owsd)
|
|||
struct uci_section *ss;
|
||||
char *ret;
|
||||
|
||||
dmuci_add_section("firewall", "rule", &ss, &ret);
|
||||
dmuci_add_section_and_rename("firewall", "rule", &ss, &ret);
|
||||
dmuci_set_value_by_section(ss, "name", "juci-remote-access");
|
||||
dmuci_set_value_by_section(ss, "src", "wan");
|
||||
dmuci_set_value_by_section(ss, "proto", "tcp");
|
||||
|
|
|
|||
|
|
@ -1575,7 +1575,7 @@ int add_wifi_ssid(char *refparam, struct dmctx *ctx, void *data, char **instance
|
|||
check_create_dmmap_package("dmmap_wireless");
|
||||
inst = get_last_instance_icwmpd("dmmap_wireless", "wifi-iface", "ssidinstance");
|
||||
sprintf(ssid, "Inteno_%d", inst ? (atoi(inst)+1) : 1);
|
||||
dmuci_add_section("wireless", "wifi-iface", &s, &value);
|
||||
dmuci_add_section_and_rename("wireless", "wifi-iface", &s, &value);
|
||||
dmuci_set_value_by_section(s, "device", "wl0");
|
||||
dmuci_set_value_by_section(s, "encryption", "none");
|
||||
dmuci_set_value_by_section(s, "macfilter", "0");
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ int upnp_configuration_ipinterface_createinstance(char *refparam, struct dmctx *
|
|||
dmstrappendstr(p, "ip_interface_");
|
||||
dmstrappendstr(p, ib);
|
||||
dmstrappendend(p);
|
||||
dmuci_add_section("network", "interface", &iface_sec, &value);
|
||||
dmuci_add_section_and_rename("network", "interface", &iface_sec, &value);
|
||||
dmuci_set_value("network", ip_name, "", "interface");
|
||||
dmuci_set_value("network", ip_name, "proto", "dhcp");
|
||||
*instance = update_instance(iface_sec, iface_instance, "upnp_ip_iface_instance");
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ int upnp_deviceinfo_networkinterface_createinstance(char *refparam, struct dmctx
|
|||
dmstrappendstr(p, ib);
|
||||
dmstrappendend(p);
|
||||
sprintf(ib, "%d", iface_instance ? atoi(iface_instance)+1 : 1);
|
||||
dmuci_add_section("network", "interface", &iface_sec, &value);
|
||||
dmuci_add_section_and_rename("network", "interface", &iface_sec, &value);
|
||||
dmuci_set_value("network", ip_name, "", "interface");
|
||||
dmuci_set_value("network", ip_name, "proto", "dhcp");
|
||||
*instance = update_instance(iface_sec, iface_instance, "upnp_iface_int_instance");
|
||||
|
|
|
|||
|
|
@ -502,6 +502,14 @@ int dmuci_add_section(char *package, char *stype, struct uci_section **s, char *
|
|||
return 0;
|
||||
}
|
||||
|
||||
int dmuci_add_section_and_rename(char *package, char *stype, struct uci_section **s, char **value)
|
||||
{
|
||||
int r;
|
||||
r = dmuci_add_section(package, stype, s, value);
|
||||
dmuci_rename_section_by_section(*s, *value);
|
||||
return r;
|
||||
}
|
||||
|
||||
int dmuci_add_state_section(char *package, char *stype, struct uci_section **s, char **value)
|
||||
{
|
||||
struct uci_ptr ptr = {0};
|
||||
|
|
|
|||
|
|
@ -147,6 +147,7 @@ char *dmuci_set_value(char *package, char *section, char *option, char *value);
|
|||
int dmuci_add_list_value(char *package, char *section, char *option, char *value);
|
||||
int dmuci_del_list_value(char *package, char *section, char *option, char *value);
|
||||
int dmuci_add_section(char *package, char *stype, struct uci_section **s, char **value);
|
||||
int dmuci_add_section_and_rename(char *package, char *stype, struct uci_section **s, char **value);
|
||||
int dmuci_delete(char *package, char *section, char *option, char *value);
|
||||
int dmuci_lookup_ptr_by_section(struct uci_context *ctx, struct uci_ptr *ptr, struct uci_section *s, char *option, char *value);
|
||||
int dmuci_get_value_by_section_string(struct uci_section *s, char *option, char **value);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue