diff --git a/dmtree/tr104/voice_services.c b/dmtree/tr104/voice_services.c index a51c8fa0..15b1b3c2 100644 --- a/dmtree/tr104/voice_services.c +++ b/dmtree/tr104/voice_services.c @@ -2045,22 +2045,21 @@ static void codec_update_id() ////////////////////////SET AND GET ALIAS///////////////////////////////// int get_service_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - struct uci_section *service_section = (struct uci_section *)data; - dmuci_get_value_by_section_string(service_section, "vsalias", value); + dmuci_get_value_by_section_string((struct uci_section *)data, "vsalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } static int set_service_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { - struct uci_section *service_section = (struct uci_section *)data; - switch (action) { case VALUECHECK: if (dm_validate_string(value, -1, 64, NULL, 0, NULL, 0)) return FAULT_9007; return 0; case VALUESET: - dmuci_set_value_by_section(service_section, "vsalias", value); + dmuci_set_value_by_section((struct uci_section *)data, "vsalias", value); return 0; } return 0; @@ -2068,22 +2067,21 @@ static int set_service_alias(char *refparam, struct dmctx *ctx, void *data, char int get_cap_codec_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - struct codec_args *cur_codec_args = (struct codec_args *)data; - dmuci_get_value_by_section_string(cur_codec_args->codec_section, "codecalias", value); + dmuci_get_value_by_section_string(((struct codec_args *)data)->codec_section, "codecalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } static int set_cap_codec_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { - struct codec_args *cur_codec_args = (struct codec_args *)data; - switch (action) { case VALUECHECK: if (dm_validate_string(value, -1, 64, NULL, 0, NULL, 0)) return FAULT_9007; return 0; case VALUESET: - dmuci_set_value_by_section(cur_codec_args->codec_section, "codecalias", value); + dmuci_set_value_by_section(((struct codec_args *)data)->codec_section, "codecalias", value); return 0; } return 0; @@ -2091,18 +2089,17 @@ static int set_cap_codec_alias(char *refparam, struct dmctx *ctx, void *data, ch static int get_voice_profile_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - struct sip_args *sipargs = (struct sip_args *)data; struct uci_section *dmmap_section = NULL; - get_dmmap_section_of_config_section("dmmap_voice_client", "sip_service_provider", section_name(sipargs->sip_section), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "profilealias", value); + get_dmmap_section_of_config_section("dmmap_voice_client", "sip_service_provider", section_name(((struct sip_args *)data)->sip_section), &dmmap_section); + dmuci_get_value_by_section_string(dmmap_section, "profilealias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } static int set_voice_profile_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { - struct sip_args *sipargs = (struct sip_args *)data; struct uci_section *dmmap_section = NULL; switch (action) { @@ -2111,9 +2108,8 @@ static int set_voice_profile_alias(char *refparam, struct dmctx *ctx, void *data return FAULT_9007; return 0; case VALUESET: - get_dmmap_section_of_config_section("dmmap_voice_client", "sip_service_provider", section_name(sipargs->sip_section), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "profilealias", value); + get_dmmap_section_of_config_section("dmmap_voice_client", "sip_service_provider", section_name(((struct sip_args *)data)->sip_section), &dmmap_section); + dmuci_set_value_by_section(dmmap_section, "profilealias", value); return 0; } return 0; @@ -2121,18 +2117,17 @@ static int set_voice_profile_alias(char *refparam, struct dmctx *ctx, void *data static int get_line_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - struct tel_args *telarg = (struct tel_args *)data; struct uci_section *dmmap_section = NULL; - get_dmmap_section_of_config_section("dmmap_voice_client", "tel_line", section_name(telarg->tel_section), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "linealias", value); + get_dmmap_section_of_config_section("dmmap_voice_client", "tel_line", section_name(((struct tel_args *)data)->tel_section), &dmmap_section); + dmuci_get_value_by_section_string(dmmap_section, "linealias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } static int set_line_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { - struct tel_args *telarg = (struct tel_args *)data; struct uci_section *dmmap_section = NULL; switch (action) { @@ -2141,9 +2136,8 @@ static int set_line_alias(char *refparam, struct dmctx *ctx, void *data, char *i return FAULT_9007; return 0; case VALUESET: - get_dmmap_section_of_config_section("dmmap_voice_client", "tel_line", section_name(telarg->tel_section), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "linealias", value); + get_dmmap_section_of_config_section("dmmap_voice_client", "tel_line", section_name(((struct tel_args *)data)->tel_section), &dmmap_section); + dmuci_set_value_by_section(dmmap_section, "linealias", value); return 0; } return 0; @@ -2152,6 +2146,8 @@ static int set_line_alias(char *refparam, struct dmctx *ctx, void *data, char *i static int get_line_codec_list_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct line_codec_args *)data)->codec_sec, "codecalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr157/bulkdata.c b/dmtree/tr157/bulkdata.c index 300a99ba..cfdd9c85 100644 --- a/dmtree/tr157/bulkdata.c +++ b/dmtree/tr157/bulkdata.c @@ -344,6 +344,8 @@ static int set_BulkDataProfile_Enable(char *refparam, struct dmctx *ctx, void *d static int get_BulkDataProfile_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "profile_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr157/softwaremodules.c b/dmtree/tr157/softwaremodules.c index 9a65ad1b..3a75a19e 100644 --- a/dmtree/tr157/softwaremodules.c +++ b/dmtree/tr157/softwaremodules.c @@ -226,6 +226,8 @@ static int get_SoftwareModulesExecEnv_Alias(char *refparam, struct dmctx *ctx, v dmuci_get_value_by_section_string(s, "name", &env_name); if (strcmp(env_name, name) == 0) { dmuci_get_value_by_section_string(s, "alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } } @@ -249,7 +251,7 @@ static int set_SoftwareModulesExecEnv_Alias(char *refparam, struct dmctx *ctx, v dmuci_set_value_by_section_bbfdm(s, "alias", value); found = 1; } - if(!found) { + if (!found) { dmuci_add_section_bbfdm("dmmap", "environment", &dmmap, &v); dmuci_set_value_by_section(dmmap, "name", name); dmuci_set_value_by_section(dmmap, "alias", value); @@ -384,6 +386,8 @@ static int get_SoftwareModulesDeploymentUnit_Alias(char *refparam, struct dmctx dmuci_get_value_by_section_string(s, "environment", &du_env); if ((strcmp(du_name, name) == 0) && (strcmp(du_env, environment) == 0)) { dmuci_get_value_by_section_string(s, "alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } } @@ -413,7 +417,7 @@ static int set_SoftwareModulesDeploymentUnit_Alias(char *refparam, struct dmctx break; } } - if(!found) { + if (!found) { dmuci_add_section_bbfdm("dmmap", "deployment_unit", &dmmap, &v); dmuci_set_value_by_section(dmmap, "name", name); dmuci_set_value_by_section(dmmap, "environment", environment); @@ -553,6 +557,8 @@ static int get_SoftwareModulesExecutionUnit_Alias(char *refparam, struct dmctx * dmuci_get_value_by_section_string(s, "environment", &eu_env); if ((strcmp(eu_euid, euid) == 0) && (strcmp(eu_env, environment) == 0)) { dmuci_get_value_by_section_string(s, "alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } } @@ -582,7 +588,7 @@ static int set_SoftwareModulesExecutionUnit_Alias(char *refparam, struct dmctx * break; } } - if(!found) { + if (!found) { dmuci_add_section_bbfdm("dmmap", "execution_unit", &dmmap, &v); dmuci_set_value_by_section(dmmap, "euid", euid); dmuci_set_value_by_section(dmmap, "environment", environment); diff --git a/dmtree/tr181/atm.c b/dmtree/tr181/atm.c index c5faf123..44ad891d 100644 --- a/dmtree/tr181/atm.c +++ b/dmtree/tr181/atm.c @@ -24,7 +24,7 @@ struct atm_args static int get_atm_linker(char *refparam, struct dmctx *dmctx, void *data, char *instance, char **linker) { if (data && ((struct atm_args *)data)->ifname) { - *linker = ((struct atm_args *)data)->ifname; + *linker = ((struct atm_args *)data)->ifname; return 0; } *linker = "" ; @@ -323,8 +323,9 @@ static int get_atm_alias(char *refparam, struct dmctx *ctx, void *data, char *in struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_dsl", "atm-device", section_name(((struct atm_args *)data)->atm_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "atmlinkalias", value); + dmuci_get_value_by_section_string(dmmap_section, "atmlinkalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -339,8 +340,7 @@ static int set_atm_alias(char *refparam, struct dmctx *ctx, void *data, char *in return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_dsl", "atm-device", section_name(((struct atm_args *)data)->atm_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "atmlinkalias", value); + dmuci_set_value_by_section(dmmap_section, "atmlinkalias", value); return 0; } return 0; @@ -385,7 +385,7 @@ DMOBJ tATMLinkObj[] = { DMLEAF tATMLinkParams[] = { /* PARAM, permission, type, getvalue, setvalue, forced_inform, notification, bbfdm_type*/ -{"Alias", &DMWRITE, DMT_STRING, get_atm_alias, set_atm_alias, NULL, NULL, BBFDM_BOTH}, +{"Alias", &DMWRITE, DMT_STRING, get_atm_alias, set_atm_alias, NULL, NULL, BBFDM_BOTH}, {"Enable", &DMWRITE, DMT_BOOL, get_atm_enable, set_atm_enable, NULL, NULL, BBFDM_BOTH}, {"Name", &DMREAD, DMT_STRING, get_atm_link_name, NULL, NULL, NULL, BBFDM_BOTH}, {"Status", &DMREAD, DMT_STRING, get_atm_status, NULL, NULL, NULL, BBFDM_BOTH}, diff --git a/dmtree/tr181/bridging.c b/dmtree/tr181/bridging.c index 1ed0b84e..90a4c236 100644 --- a/dmtree/tr181/bridging.c +++ b/dmtree/tr181/bridging.c @@ -993,6 +993,8 @@ static int get_br_alias(char *refparam, struct dmctx *ctx, void *data, char *ins get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct bridging_args *)data)->bridge_sec), &dmmap_section); dmuci_get_value_by_section_string(dmmap_section, "bridge_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1007,8 +1009,7 @@ static int set_br_alias(char *refparam, struct dmctx *ctx, void *data, char *ins return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct bridging_args *)data)->bridge_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "bridge_alias", value); + dmuci_set_value_by_section(dmmap_section, "bridge_alias", value); return 0; } return 0; @@ -1034,6 +1035,11 @@ static int get_br_port_alias(char *refparam, struct dmctx *ctx, void *data, char } } } + if ((*value)[0] == '\0') { + dmasprintf(value, "cpe-%s", instance); + } else { + dmuci_set_value_by_section(dmmap_section, "bridge_port_alias", *value); + } return 0; } @@ -1048,8 +1054,7 @@ static int set_br_port_alias(char *refparam, struct dmctx *ctx, void *data, char return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_bridge_port", "bridge_port", section_name(((struct bridging_port_args *)data)->bridge_port_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "bridge_port_alias", value); + dmuci_set_value_by_section(dmmap_section, "bridge_port_alias", value); return 0; } return 0; @@ -1059,9 +1064,10 @@ static int get_br_vlan_alias(char *refparam, struct dmctx *ctx, void *data, char { struct uci_section *dmmap_section = NULL; - /* Interface section needs to be browsed to get the value for vlan alias. */ get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct bridging_vlan_args *)data)->bridge_vlan_sec), &dmmap_section); dmuci_get_value_by_section_string(dmmap_section, "bridge_vlan_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1076,8 +1082,7 @@ static int set_br_vlan_alias(char *refparam, struct dmctx *ctx, void *data, char return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct bridging_vlan_args *)data)->bridge_vlan_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "bridge_vlan_alias", value); + dmuci_set_value_by_section(dmmap_section, "bridge_vlan_alias", value); return 0; } return 0; diff --git a/dmtree/tr181/deviceinfo.c b/dmtree/tr181/deviceinfo.c index 23a26a58..5d916f32 100644 --- a/dmtree/tr181/deviceinfo.c +++ b/dmtree/tr181/deviceinfo.c @@ -171,6 +171,8 @@ static int get_vcf_desc(char *refparam, struct dmctx *ctx, void *data, char *ins static int get_vcf_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "vcf_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -207,6 +209,8 @@ static int check_file_dir(char *name) static int get_vlf_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "vlf_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/dhcpv4.c b/dmtree/tr181/dhcpv4.c index 53ed5b47..69035e7e 100644 --- a/dmtree/tr181/dhcpv4.c +++ b/dmtree/tr181/dhcpv4.c @@ -553,8 +553,9 @@ static int get_server_pool_alias(char *refparam, struct dmctx *ctx, void *data, struct uci_section *dmmap_sect = NULL; get_dmmap_section_of_config_section("dmmap_dhcp", "dhcp", section_name(((struct dhcp_args *)data)->dhcp_sec), &dmmap_sect); - if (dmmap_sect) - dmuci_get_value_by_section_string(dmmap_sect, "dhcp_alias", value); + dmuci_get_value_by_section_string(dmmap_sect, "dhcp_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -569,8 +570,7 @@ static int set_server_pool_alias(char *refparam, struct dmctx *ctx, void *data, return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_dhcp", "dhcp", section_name(((struct dhcp_args *)data)->dhcp_sec), &dmmap_sect); - if (dmmap_sect) - DMUCI_SET_VALUE_BY_SECTION(bbfdm, dmmap_sect, "dhcp_alias", value); + DMUCI_SET_VALUE_BY_SECTION(bbfdm, dmmap_sect, "dhcp_alias", value); return 0; } return 0; @@ -1231,8 +1231,9 @@ static int get_dhcp_static_alias(char *refparam, struct dmctx *ctx, void *data, { struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_dhcp", "host", section_name(((struct dhcp_static_args *)data)->dhcpsection), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "ldhcpalias", value); + dmuci_get_value_by_section_string(dmmap_section, "ldhcpalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1247,8 +1248,7 @@ static int set_dhcp_static_alias(char *refparam, struct dmctx *ctx, void *data, return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_dhcp", "host", section_name(((struct dhcp_static_args *)data)->dhcpsection), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "ldhcpalias", value); + dmuci_set_value_by_section(dmmap_section, "ldhcpalias", value); return 0; } return 0; @@ -1395,7 +1395,8 @@ static int set_DHCPv4Client_Enable(char *refparam, struct dmctx *ctx, void *data static int get_DHCPv4Client_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dhcp_client_args *)data)->dhcp_client_dm, "bbf_dhcpv4client_alias", value); - + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1697,6 +1698,8 @@ static int set_DHCPv4ClientSentOption_Enable(char *refparam, struct dmctx *ctx, static int get_DHCPv4ClientSentOption_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dhcp_client_option_args *)data)->opt_sect, "bbf_dhcpv4_sentopt_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1829,6 +1832,8 @@ static int set_DHCPv4ClientReqOption_Enable(char *refparam, struct dmctx *ctx, v static int get_DHCPv4ClientReqOption_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dhcp_client_option_args *)data)->opt_sect, "bbf_dhcpv4_reqtopt_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1958,6 +1963,8 @@ static int get_DHCPv4Server_PoolNumberOfEntries(char *refparam, struct dmctx *ct static int get_DHCPv4ServerPoolOption_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dhcp_client_option_args *)data)->opt_sect, "bbf_dhcpv4_servpool_option_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -2092,6 +2099,8 @@ static int set_DHCPv4RelayForwarding_Enable(char *refparam, struct dmctx *ctx, v static int get_DHCPv4RelayForwarding_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dhcp_client_args *)data)->dhcp_client_dm, "bbf_dhcpv4relay_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/dhcpv6.c b/dmtree/tr181/dhcpv6.c index 9ffe5622..2f55c4a1 100644 --- a/dmtree/tr181/dhcpv6.c +++ b/dmtree/tr181/dhcpv6.c @@ -509,6 +509,8 @@ static int set_DHCPv6Client_Enable(char *refparam, struct dmctx *ctx, void *data static int get_DHCPv6Client_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dhcpv6_client_args *)data)->dhcp_client_dm, "bbf_dhcpv6client_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -833,8 +835,9 @@ static int get_DHCPv6ServerPool_Alias(char *refparam, struct dmctx *ctx, void *d struct uci_section *dmmap_sect = NULL; get_dmmap_section_of_config_section("dmmap_dhcpv6", "dhcp", section_name(((struct dhcpv6_args *)data)->dhcp_sec), &dmmap_sect); - if (dmmap_sect) - dmuci_get_value_by_section_string(dmmap_sect, "dhcpv6_serv_pool_alias", value); + dmuci_get_value_by_section_string(dmmap_sect, "dhcpv6_serv_pool_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -849,8 +852,7 @@ static int set_DHCPv6ServerPool_Alias(char *refparam, struct dmctx *ctx, void *d return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_dhcpv6", "dhcp", section_name(((struct dhcpv6_args *)data)->dhcp_sec), &dmmap_sect); - if (dmmap_sect) - DMUCI_SET_VALUE_BY_SECTION(bbfdm, dmmap_sect, "dhcpv6_serv_pool_alias", value); + DMUCI_SET_VALUE_BY_SECTION(bbfdm, dmmap_sect, "dhcpv6_serv_pool_alias", value); return 0; } return 0; @@ -1236,6 +1238,8 @@ static int set_DHCPv6ServerPoolOption_Enable(char *refparam, struct dmctx *ctx, static int get_DHCPv6ServerPoolOption_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dhcpv6_client_option_args *)data)->opt_sect, "bbf_dhcpv6_servpool_option_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/dns.c b/dmtree/tr181/dns.c index b01e080b..b3101335 100644 --- a/dmtree/tr181/dns.c +++ b/dmtree/tr181/dns.c @@ -309,6 +309,8 @@ static int get_server_status(char *refparam, struct dmctx *ctx, void *data, char static int get_server_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "dns_server_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -395,6 +397,8 @@ static int get_forwarding_status(char *refparam, struct dmctx *ctx, void *data, static int get_forwarding_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "dns_server_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/dsl.c b/dmtree/tr181/dsl.c index 7047925c..ab2a2f4b 100644 --- a/dmtree/tr181/dsl.c +++ b/dmtree/tr181/dsl.c @@ -269,6 +269,8 @@ static int get_DSLLine_Status(char *refparam, struct dmctx *ctx, void *data, cha static int get_DSLLine_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dsl_line_args *)data)->line_sec, "dsl_line_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -896,6 +898,8 @@ static int get_DSLChannel_Status(char *refparam, struct dmctx *ctx, void *data, static int get_DSLChannel_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dsl_channel_args *)data)->channel_sec, "dsl_channel_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/dynamicdns.c b/dmtree/tr181/dynamicdns.c index 79c3f710..06550866 100644 --- a/dmtree/tr181/dynamicdns.c +++ b/dmtree/tr181/dynamicdns.c @@ -397,8 +397,9 @@ static int get_DynamicDNSClient_Alias(char *refparam, struct dmctx *ctx, void *d struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_ddns", "service", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "clientalias", value); + dmuci_get_value_by_section_string(dmmap_section, "clientalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -413,8 +414,7 @@ static int set_DynamicDNSClient_Alias(char *refparam, struct dmctx *ctx, void *d break; case VALUESET: get_dmmap_section_of_config_section("dmmap_ddns", "service", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "clientalias", value); + dmuci_set_value_by_section(dmmap_section, "clientalias", value); break; } return 0; @@ -749,6 +749,8 @@ static int set_DynamicDNSServer_Name(char *refparam, struct dmctx *ctx, void *da static int get_DynamicDNSServer_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "serveralias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/ethernet.c b/dmtree/tr181/ethernet.c index c77990a5..409b541b 100644 --- a/dmtree/tr181/ethernet.c +++ b/dmtree/tr181/ethernet.c @@ -511,8 +511,10 @@ static int get_EthernetInterface_Alias(char *refparam, struct dmctx *ctx, void * get_dmmap_section_of_config_section("dmmap_ports", "ethport", section_name(((struct eth_port_args *)data)->eth_port_sec), &dmmap_section); dmuci_get_value_by_section_string(dmmap_section, "eth_port_alias", value); - if ((*value)[0] == '\0') + if ((*value)[0] == '\0') { dmuci_get_value_by_section_string(((struct eth_port_args *)data)->eth_port_sec, "name", value); + dmuci_set_value_by_section(dmmap_section, "eth_port_alias", *value); + } return 0; } @@ -527,8 +529,7 @@ static int set_EthernetInterface_Alias(char *refparam, struct dmctx *ctx, void * return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_ports", "ethport", section_name(((struct eth_port_args *)data)->eth_port_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "eth_port_alias", value); + dmuci_set_value_by_section(dmmap_section, "eth_port_alias", value); return 0; } return 0; @@ -804,6 +805,8 @@ static int get_EthernetLink_Status(char *refparam, struct dmctx *ctx, void *data static int get_EthernetLink_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string(((struct dm_args *)data)->section, "link_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1220,6 +1223,8 @@ static int get_EthernetVLANTermination_Alias(char *refparam, struct dmctx *ctx, get_dmmap_section_of_config_section("dmmap_network", "device", section_name(((struct dm_args *)data)->section), &dmmap_section); dmuci_get_value_by_section_string(dmmap_section, "vlan_term_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1234,8 +1239,7 @@ static int set_EthernetVLANTermination_Alias(char *refparam, struct dmctx *ctx, return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "device", section_name(((struct dm_args *)data)->section), &dmmap_section); - if(dmmap_section) - dmuci_set_value_by_section(dmmap_section, "vlan_term_alias", value); + dmuci_set_value_by_section(dmmap_section, "vlan_term_alias", value); return 0; } return 0; diff --git a/dmtree/tr181/gre.c b/dmtree/tr181/gre.c index c0257efd..577741c2 100644 --- a/dmtree/tr181/gre.c +++ b/dmtree/tr181/gre.c @@ -230,8 +230,9 @@ static int get_GRETunnel_Alias(char *refparam, struct dmctx *ctx, void *data, ch struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct dmmap_dup *)data)->config_section), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "gretunnel_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "gretunnel_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -246,8 +247,7 @@ static int set_GRETunnel_Alias(char *refparam, struct dmctx *ctx, void *data, ch break; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct dmmap_dup *)data)->config_section), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "gretunnel_alias", value); + dmuci_set_value_by_section(dmmap_section, "gretunnel_alias", value); break; } return 0; @@ -334,8 +334,9 @@ static int get_GRETunnelInterface_Alias(char *refparam, struct dmctx *ctx, void struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct dmmap_dup *)data)->config_section), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "greiface_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "greiface_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -350,8 +351,7 @@ static int set_GRETunnelInterface_Alias(char *refparam, struct dmctx *ctx, void break; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct dmmap_dup *)data)->config_section), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "greiface_alias", value); + dmuci_set_value_by_section(dmmap_section, "greiface_alias", value); break; } return 0; diff --git a/dmtree/tr181/interfacestack.c b/dmtree/tr181/interfacestack.c index 7ae66204..bcd6cd4e 100644 --- a/dmtree/tr181/interfacestack.c +++ b/dmtree/tr181/interfacestack.c @@ -21,16 +21,12 @@ struct interfacestack_data { /************************************************************* * ENTRY METHOD **************************************************************/ -static char *get_instance_by_section(struct dmctx *dmctx, int mode, char *dmmap_config, char *section, struct uci_section *s, char *instance_option, char *alias_option) +static char *get_instance_by_section(int mode, char *dmmap_config, char *section, struct uci_section *s, char *instance_option, char *alias_option) { struct uci_section *dmmap_section; char *instance; get_dmmap_section_of_config_section(dmmap_config, section, section_name(s), &dmmap_section); - if (dmmap_section == NULL) { - return ""; - } - if (mode == INSTANCE_MODE_NUMBER) { dmuci_get_value_by_section_string(dmmap_section, instance_option, &instance); } else { @@ -45,9 +41,6 @@ static char *get_alias_by_section(char *dmmap_config, char *section, struct uci_ char *alias; get_dmmap_section_of_config_section(dmmap_config, section, section_name(s), &dmmap_section); - if (dmmap_section == NULL) { - return ""; - } dmuci_get_value_by_section_string(dmmap_section, alias_option, &alias); return alias; } @@ -62,8 +55,8 @@ static struct uci_section *create_dmmap_interface_stack_section(char *curr_inst) return s; } if (!s) { - DMUCI_ADD_SECTION(bbfdm, "dmmap_interface_stack", "interface_stack", &s, &name); - DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, "interface_stack_instance", curr_inst); + dmuci_add_section_bbfdm("dmmap_interface_stack", "interface_stack", &s, &name); + dmuci_set_value_by_section_bbfdm(s, "interface_stack_instance", curr_inst); } return s; } @@ -72,7 +65,7 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre { struct interfacestack_data ifdata = {0}; struct uci_section *s = NULL, *sd = NULL, *port, *port_s, *ss, *dmmap_s = NULL; - char *proto, *type, *pch, *layer_inst, *vb, *higheralias, *ifname, *br_inst, *mg, *value, *device, *name; + char *proto, *type, *pch, *layer_inst, *vb, *higheralias, *ifname, *br_inst, *mg, *value, *device, *name, *bridge_port_inst; char *v = ""; char *loweralias = ""; char *interface_stack_int = NULL, *interface_stack_int_last = NULL, *wanifname, *wanlinker, *mac, *sectionname, *package, *section; @@ -90,14 +83,17 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre dmuci_get_value_by_section_string(s, "proto", &proto); if (strcmp(section_name(s), "loopback") == 0 || *proto == '\0') continue; - layer_inst = get_instance_by_section(dmctx, dmctx->instance_mode, "dmmap_network", "interface", s, "ip_int_instance", "ip_int_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_network", "interface", s, "ip_int_instance", "ip_int_alias"); if (*layer_inst == '\0') continue; snprintf(buf_higherlayer, sizeof(buf_higherlayer), "Device.IP.Interface.%s.", layer_inst); higheralias = get_alias_by_section("dmmap_network", "interface", s, "ip_int_alias"); - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); + if (*higheralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", layer_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); if (strstr(proto, "ppp")) { - layer_inst = get_instance_by_section(dmctx, dmctx->instance_mode, "dmmap_network", "interface", s, "ppp_int_instance", "ppp_int_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_network", "interface", s, "ppp_int_instance", "ppp_int_alias"); if (*layer_inst == '\0') continue; snprintf(buf_lowerlayer, sizeof(buf_lowerlayer), "Device.PPP.Interface.%s.", layer_inst); @@ -108,6 +104,7 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre if (device[0] != '\0') { adm_entry_get_linker_param(dmctx, dm_print_path("%s%cEthernet%cVLANTermination%c", dmroot, dm_delim, dm_delim, dm_delim), device, &v); loweralias = get_alias_by_section("dmmap_network", "device", s, "vlan_term_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_network", "device", s, "vlan_term_instance", "vlan_term_alias"); if (v != NULL) found = 1; } @@ -115,11 +112,15 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre if (mac[0] != '\0' && found == 0) { adm_entry_get_linker_param(dmctx, dm_print_path("%s%cEthernet%cLink%c", dmroot, dm_delim, dm_delim, dm_delim), mac, &v); loweralias = get_alias_by_section("dmmap", "link", s, "link_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap", "link", s, "link_instance", "link_alias"); if (v == NULL) v = ""; } snprintf(buf_lowerlayer, sizeof(buf_lowerlayer), "%s", v); - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", layer_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); } ifdata.higherlayer = buf_higherlayer; ifdata.lowerlayer = buf_lowerlayer; @@ -137,17 +138,21 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre dmuci_get_value_by_section_string(s, "proto", &proto); if (!strstr(proto, "ppp")) continue; - layer_inst = get_instance_by_section(dmctx, dmctx->instance_mode, "dmmap_network", "interface", s, "ppp_int_instance", "ppp_int_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_network", "interface", s, "ppp_int_instance", "ppp_int_alias"); if (*layer_inst == '\0') continue; - snprintf(buf_higherlayer, sizeof(buf_higheralias), "Device.PPP.Interface.%s.", layer_inst); + snprintf(buf_higherlayer, sizeof(buf_higherlayer), "Device.PPP.Interface.%s.", layer_inst); higheralias = get_alias_by_section("dmmap_network", "interface", s, "ppp_int_alias"); - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); + if (*higheralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", layer_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); found = 0; device = get_device(section_name(s)); if (device[0] != '\0') { adm_entry_get_linker_param(dmctx, dm_print_path("%s%cEthernet%cVLANTermination%c", dmroot, dm_delim, dm_delim, dm_delim), device, &v); loweralias = get_alias_by_section("dmmap_network", "device", s, "vlan_term_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_network", "device", s, "vlan_term_instance", "vlan_term_alias"); if (v != NULL) found = 1; } @@ -155,11 +160,15 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre if (mac[0] != '\0' && found == 0) { adm_entry_get_linker_param(dmctx, dm_print_path("%s%cEthernet%cLink%c", dmroot, dm_delim, dm_delim, dm_delim), mac, &v); loweralias = get_alias_by_section("dmmap", "link", s, "link_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap", "link", s, "link_instance", "link_alias"); if (v == NULL) v = ""; } snprintf(buf_lowerlayer, sizeof(buf_lowerlayer), "%s", v); - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", layer_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); ifdata.higherlayer = buf_higherlayer; ifdata.lowerlayer = buf_lowerlayer; ifdata.higheralias = buf_higheralias; @@ -177,12 +186,15 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre dmuci_get_value_by_section_string(s, "name", &name); if (strcmp(type, "untagged") == 0 || !is_vlan_termination_section(name)) continue; - layer_inst = get_instance_by_section(dmctx, dmctx->instance_mode, "dmmap_network", "device", s, "vlan_term_instance", "vlan_term_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_network", "device", s, "vlan_term_instance", "vlan_term_alias"); if (*layer_inst == '\0') continue; snprintf(buf_higherlayer, sizeof(buf_higherlayer), "Device.Ethernet.VLANTermination.%s.", layer_inst); higheralias = get_alias_by_section("dmmap_network", "device", s, "vlan_term_alias"); - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); + if (*higheralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", layer_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); char *macaddr = get_macaddr_from_device(name); if (macaddr[0] != '\0') { if (is_mac_exist(macaddr)) { @@ -203,11 +215,15 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre mac = get_macaddr(section_name(ss)); if (strcmp(pch, mac) == 0) { loweralias = get_alias_by_section("dmmap", "link", ss, "link_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap", "link", ss, "link_instance", "link_alias"); break; } } snprintf(buf_lowerlayer, sizeof(buf_lowerlayer), "%s", v); - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", layer_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); ifdata.higherlayer = buf_higherlayer; ifdata.lowerlayer = buf_lowerlayer; ifdata.higheralias = buf_higheralias; @@ -228,12 +244,15 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre dmuci_get_value_by_section_string(s, "ifname", &ifname); if (*ifname == '\0' || *ifname == '@') continue; - layer_inst = get_instance_by_section(dmctx, dmctx->instance_mode, "dmmap", "link", s, "link_instance", "link_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap", "link", s, "link_instance", "link_alias"); if (*layer_inst == '\0') continue; snprintf(buf_higherlayer, sizeof(buf_higherlayer), "Device.Ethernet.Link.%s.", layer_inst); higheralias = get_alias_by_section("dmmap", "link", s, "link_alias"); - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); + if (*higheralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", layer_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", higheralias); if (strcmp(type, "bridge") == 0) { br_inst = get_alias_by_section("dmmap_network", "interface", s, "bridge_instance"); uci_path_foreach_option_eq(bbfdm, "dmmap_bridge_port", "bridge_port", "bridge_key", br_inst, port) { @@ -242,6 +261,7 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre snprintf(linker, sizeof(linker), "%s+", section_name(port)); adm_entry_get_linker_param(dmctx, dm_print_path("%s%cBridging%cBridge%c", dmroot, dm_delim, dm_delim, dm_delim), linker, &v); dmuci_get_value_by_section_string(port, "bridge_port_alias", &loweralias); + dmuci_get_value_by_section_string(port, "bridge_port_instance", &layer_inst); break; } } @@ -253,13 +273,17 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre adm_entry_get_linker_param(dmctx, dm_print_path("%s%cEthernet%cInterface%c", dmroot, dm_delim, dm_delim, dm_delim), wanlinker, &v); dmfree(wanlinker); loweralias = get_alias_by_section("dmmap_ports", "ethport", port_s, "eth_port_alias"); + layer_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_ports", "ethport", port_s, "eth_port_instance", "eth_port_alias"); break; } } } if (v == NULL) v = ""; - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", layer_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); ifdata.higherlayer = buf_higherlayer; ifdata.lowerlayer = v; ifdata.higheralias = buf_higheralias; @@ -276,7 +300,7 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre dmuci_get_value_by_section_string(s, "type", &type); if (strcmp(type, "bridge") != 0) continue; - br_inst = get_instance_by_section(dmctx, dmctx->instance_mode, "dmmap_network", "interface", s, "bridge_instance", "bridge_alias"); + br_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_network", "interface", s, "bridge_instance", "bridge_alias"); if (*br_inst == '\0') continue; uci_path_foreach_option_eq(bbfdm, "dmmap_bridge_port", "bridge_port", "bridge_key", br_inst, port) { @@ -285,7 +309,11 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre snprintf(linker, sizeof(linker), "%s+", section_name(port)); adm_entry_get_linker_param(dmctx, dm_print_path("%s%cBridging%cBridge%c", dmroot, dm_delim, dm_delim, dm_delim), linker, &pch); dmuci_get_value_by_section_string(port, "bridge_port_alias", &higheralias); - snprintf(buf_tmp, sizeof(buf_tmp), "%s", higheralias); + dmuci_get_value_by_section_string(port, "bridge_port_instance", &bridge_port_inst); + if (*higheralias == '\0') + snprintf(buf_tmp, sizeof(buf_tmp), "cpe-%s", bridge_port_inst); + else + snprintf(buf_tmp, sizeof(buf_tmp), "%s", higheralias); if (pch == NULL) pch = ""; break; @@ -316,7 +344,11 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre if (vb == NULL) vb = ""; dmuci_get_value_by_section_string(sd, "bridge_port_alias", &loweralias); - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_bridge_port", "bridge_port", sd, "bridge_port_instance", "bridge_port_alias"); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); ifdata.higherlayer = pch; ifdata.lowerlayer = vb; @@ -328,19 +360,25 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&ifdata, interface_stack_int) == DM_STOP) goto end; - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); if(strcmp(package, "ports") == 0) { adm_entry_get_linker_param(dmctx, dm_print_path("%s%cEthernet%cInterface%c", dmroot, dm_delim, dm_delim, dm_delim), ifname, &v); loweralias = get_alias_by_section("dmmap_ports", "ethport", port_s, "eth_port_alias"); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_ports", "ethport", port_s, "eth_port_instance", "eth_port_alias"); } else if(strcmp(package, "wireless") == 0) { adm_entry_get_linker_param(dmctx,dm_print_path("%s%cWiFi%cSSID%c", dmroot, dm_delim, dm_delim, dm_delim), ifname, &v); loweralias = get_alias_by_section("dmmap_wireless", "wifi-iface", port_s, "ssidalias"); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_wireless", "wifi-iface", port_s, "ssidinstance", "ssidalias"); } else if(strcmp(package, "network") == 0) { if(strstr(ifname, "atm")) { adm_entry_get_linker_param(dmctx,dm_print_path("%s%cATM%cLink%c", dmroot, dm_delim, dm_delim, dm_delim), ifname, &v); uci_foreach_sections("dsl", "atm-device", ss) { if(strcmp(section_name(ss), ifname) == 0) { loweralias = get_alias_by_section("dmmap_dsl", "atm-device", ss, "atmlinkalias"); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_dsl", "atm-device", port_s, "atmlinkinstance", "atmlinkalias"); break; } } @@ -349,6 +387,7 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre uci_foreach_sections("dsl", "ptm-device", ss) { if(strcmp(section_name(ss), ifname) == 0) { loweralias = get_alias_by_section("dmmap_dsl", "ptm-device", ss, "ptmlinkalias"); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_dsl", "ptm-device", port_s, "ptmlinkinstance", "ptmlinkalias"); break; } } @@ -356,9 +395,13 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre snprintf(linker, sizeof(linker), "%s.1", ifname); adm_entry_get_linker_param(dmctx,dm_print_path("%s%cEthernet%cInterface%c", dmroot, dm_delim, dm_delim, dm_delim), linker, &v); loweralias = get_alias_by_section("dmmap_ports", "ethport", port_s, "eth_port_alias"); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_ports", "ethport", port_s, "eth_port_instance", "eth_port_alias"); } } - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); if (v == NULL) v = ""; ifdata.higherlayer = vb; @@ -372,7 +415,10 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre goto end; if(strcmp(package, "wireless") == 0) { - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); uci_foreach_option_eq("wireless", "wifi-iface", "ifname", ifname, ss) { dmuci_get_value_by_section_string(ss, "device", &device); } @@ -381,13 +427,17 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre uci_foreach_sections("wireless", "wifi-device", ss) { if(strcmp(section_name(ss), device) == 0) { loweralias = get_alias_by_section("dmmap_wireless", "wifi-device", ss, "radioalias"); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap_wireless", "wifi-device", ss, "radioinstance", "radioalias"); break; } } } if (vb == NULL) vb = ""; - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); ifdata.higherlayer = v; ifdata.lowerlayer = vb; ifdata.higheralias = buf_higheralias; @@ -401,15 +451,22 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre if(strcmp(package, "network") == 0) { if(strstr(ifname, "atm") || strstr(ifname, "ptm")) { - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); char *link_channel = "channel_0"; adm_entry_get_linker_param(dmctx, dm_print_path("%s%cDSL%cChannel%c", dmroot, dm_delim, dm_delim, dm_delim), link_channel, &vb); if (vb == NULL) vb = ""; uci_path_foreach_sections(bbfdm, "dmmap", "dsl_channel", ss) { dmuci_get_value_by_section_string(ss, "dsl_channel_alias", &loweralias); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap", "dsl_channel", ss, "dsl_channel_instance", "dsl_channel_alias"); } - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); ifdata.higherlayer = v; ifdata.lowerlayer = vb; ifdata.higheralias = buf_higheralias; @@ -420,15 +477,22 @@ int browseInterfaceStackInst(struct dmctx *dmctx, DMNODE *parent_node, void *pre if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)&ifdata, interface_stack_int) == DM_STOP) goto end; - snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_higheralias, sizeof(buf_higheralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_higheralias, sizeof(buf_higheralias), "%s", loweralias); char *link_line = "line_0"; adm_entry_get_linker_param(dmctx, dm_print_path("%s%cDSL%cLine%c", dmroot, dm_delim, dm_delim, dm_delim), link_line, &value); if (value == NULL) value = ""; uci_path_foreach_sections(bbfdm, "dmmap", "dsl_line", ss) { dmuci_get_value_by_section_string(ss, "dsl_line_alias", &loweralias); + bridge_port_inst = get_instance_by_section(dmctx->instance_mode, "dmmap", "dsl_line", ss, "dsl_line_instance", "dsl_line_alias"); } - snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); + if (*loweralias == '\0') + snprintf(buf_loweralias, sizeof(buf_loweralias), "cpe-%s", bridge_port_inst); + else + snprintf(buf_loweralias, sizeof(buf_loweralias), "%s", loweralias); ifdata.higherlayer = vb; ifdata.lowerlayer = value; ifdata.higheralias = buf_higheralias; @@ -467,6 +531,8 @@ static int get_InterfaceStack_Alias(char *refparam, struct dmctx *ctx, void *dat struct uci_section *s = NULL; uci_path_foreach_option_eq(bbfdm, "dmmap_interface_stack", "interface_stack", "interface_stack_instance", instance, s) { dmuci_get_value_by_section_string(s, "interface_stack_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); } return 0; } diff --git a/dmtree/tr181/ip.c b/dmtree/tr181/ip.c index 8878286f..0be4cd5d 100644 --- a/dmtree/tr181/ip.c +++ b/dmtree/tr181/ip.c @@ -1188,6 +1188,8 @@ static int get_IPInterfaceTWAMPReflector_Status(char *refparam, struct dmctx *ct static int get_IPInterfaceTWAMPReflector_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "twamp_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1293,8 +1295,9 @@ static int get_IPInterface_Alias(char *refparam, struct dmctx *ctx, void *data, struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct ip_args *)data)->ip_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "ip_int_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "ip_int_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1309,8 +1312,7 @@ static int set_IPInterface_Alias(char *refparam, struct dmctx *ctx, void *data, return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct ip_args *)data)->ip_sec), &dmmap_section); - if (dmmap_section != NULL) - dmuci_set_value_by_section(dmmap_section, "ip_int_alias", value); + dmuci_set_value_by_section(dmmap_section, "ip_int_alias", value); return 0; } return 0; @@ -1321,8 +1323,9 @@ static int get_ipv4_alias(char *refparam, struct dmctx *ctx, void *data, char *i struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct ip_args *)data)->ip_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "ipv4_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "ipv4_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1337,8 +1340,7 @@ static int set_ipv4_alias(char *refparam, struct dmctx *ctx, void *data, char *i return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "interface", section_name(((struct ip_args *)data)->ip_sec), &dmmap_section); - if (dmmap_section != NULL) - dmuci_set_value_by_section(dmmap_section, "ipv4_alias", value); + dmuci_set_value_by_section(dmmap_section, "ipv4_alias", value); return 0; } return 0; @@ -1351,8 +1353,11 @@ static int get_IPInterfaceIPv6Address_Alias(char *refparam, struct dmctx *ctx, v uci_path_foreach_option_eq(bbfdm, "dmmap_network", "ipv6", "ipv6_instance", instance, dmmap_section) { dmuci_get_value_by_section_string(dmmap_section, "section_name", &name); - if(strcmp(name, section_name(((struct ipv6_args *)data)->ip_sec)) == 0) + if (strcmp(name, section_name(((struct ipv6_args *)data)->ip_sec)) == 0) { dmuci_get_value_by_section_string(dmmap_section, "ipv6_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); + } } return 0; } @@ -1373,8 +1378,7 @@ static int set_IPInterfaceIPv6Address_Alias(char *refparam, struct dmctx *ctx, v if(strcmp(name, section_name(((struct ipv6_args *)data)->ip_sec)) == 0) break; } - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "ipv6_alias", value); + dmuci_set_value_by_section(dmmap_section, "ipv6_alias", value); return 0; } return 0; @@ -1387,8 +1391,11 @@ static int get_IPInterfaceIPv6Prefix_Alias(char *refparam, struct dmctx *ctx, vo uci_path_foreach_option_eq(bbfdm, "dmmap_network", "ipv6prefix", "ipv6prefix_instance", instance, dmmap_section) { dmuci_get_value_by_section_string(dmmap_section, "section_name", &name); - if(strcmp(name, section_name(((struct ipv6prefix_args *)data)->ip_sec)) == 0) + if(strcmp(name, section_name(((struct ipv6prefix_args *)data)->ip_sec)) == 0) { dmuci_get_value_by_section_string(dmmap_section, "ipv6prefix_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); + } } return 0; } @@ -1409,8 +1416,7 @@ static int set_IPInterfaceIPv6Prefix_Alias(char *refparam, struct dmctx *ctx, vo if(strcmp(name, section_name(((struct ipv6prefix_args *)data)->ip_sec)) == 0) break; } - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "ipv6prefix_alias", value); + dmuci_set_value_by_section(dmmap_section, "ipv6prefix_alias", value); return 0; } return 0; diff --git a/dmtree/tr181/nat.c b/dmtree/tr181/nat.c index c9b13e2f..a31b56ef 100644 --- a/dmtree/tr181/nat.c +++ b/dmtree/tr181/nat.c @@ -195,8 +195,9 @@ static int get_nat_interface_setting_alias(char *refparam, struct dmctx *ctx, vo struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_firewall", "zone", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "interface_setting_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "interface_setting_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -211,8 +212,7 @@ static int set_nat_interface_setting_alias(char *refparam, struct dmctx *ctx, vo return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_firewall", "zone", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "interface_setting_alias", value); + dmuci_set_value_by_section(dmmap_section, "interface_setting_alias", value); return 0; } return 0; @@ -304,8 +304,9 @@ static int get_nat_port_mapping_alias(char *refparam, struct dmctx *ctx, void *d struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_firewall", "redirect", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "port_mapping_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "port_mapping_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -320,8 +321,7 @@ static int set_nat_port_mapping_alias(char *refparam, struct dmctx *ctx, void *d return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_firewall", "redirect", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "port_mapping_alias", value); + dmuci_set_value_by_section(dmmap_section, "port_mapping_alias", value); return 0; } return 0; diff --git a/dmtree/tr181/ppp.c b/dmtree/tr181/ppp.c index ee4d5897..1b9836aa 100644 --- a/dmtree/tr181/ppp.c +++ b/dmtree/tr181/ppp.c @@ -21,8 +21,9 @@ static int get_ppp_alias(char *refparam, struct dmctx *ctx, void *data, char *in struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_network", "interface", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "ppp_int_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "ppp_int_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -37,8 +38,7 @@ static int set_ppp_alias(char *refparam, struct dmctx *ctx, void *data, char *in return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_network", "interface", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "ppp_int_alias", value); + dmuci_set_value_by_section(dmmap_section, "ppp_int_alias", value); return 0; } return 0; diff --git a/dmtree/tr181/ptm.c b/dmtree/tr181/ptm.c index 33a30cf8..f4e4e63a 100644 --- a/dmtree/tr181/ptm.c +++ b/dmtree/tr181/ptm.c @@ -214,8 +214,9 @@ static int get_ptm_alias(char *refparam, struct dmctx *ctx, void *data, char *in struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_dsl", "ptm-device", section_name(((struct ptm_args *)data)->ptm_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "ptmlinkalias", value); + dmuci_get_value_by_section_string(dmmap_section, "ptmlinkalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -230,8 +231,7 @@ static int set_ptm_alias(char *refparam, struct dmctx *ctx, void *data, char *in return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_dsl", "ptm-device", section_name(((struct ptm_args *)data)->ptm_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "ptmlinkalias", value); + dmuci_set_value_by_section(dmmap_section, "ptmlinkalias", value); return 0; } return 0; diff --git a/dmtree/tr181/qos-iopsyswrt.c b/dmtree/tr181/qos-iopsyswrt.c index 080b8020..4a28b5d0 100644 --- a/dmtree/tr181/qos-iopsyswrt.c +++ b/dmtree/tr181/qos-iopsyswrt.c @@ -2803,8 +2803,11 @@ static int get_QoSQueue_Status(char *refparam, struct dmctx *ctx, void *data, ch static int get_QoSQueue_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { struct uci_section *dmmap_section = NULL; + get_dmmap_section_of_config_section("dmmap_qos", "queue", section_name((struct uci_section *)data), &dmmap_section); dmuci_get_value_by_section_string(dmmap_section, "queuealias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -3238,8 +3241,11 @@ static int get_QoSShaper_Status(char *refparam, struct dmctx *ctx, void *data, c static int get_QoSShaper_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { struct uci_section *dmmap_section = NULL; + get_dmmap_section_of_config_section("dmmap_qos", "shaper", section_name((struct uci_section *)data), &dmmap_section); dmuci_get_value_by_section_string(dmmap_section, "shaperalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/qos.c b/dmtree/tr181/qos.c index e9fdc351..0dbfa041 100644 --- a/dmtree/tr181/qos.c +++ b/dmtree/tr181/qos.c @@ -759,6 +759,8 @@ static int get_QoSClassification_Alias(char *refparam, struct dmctx *ctx, void * { struct dmmap_dup *p= (struct dmmap_dup*)data; dmuci_get_value_by_section_string(p->dmmap_section, "classifalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -3544,6 +3546,8 @@ static int get_QoSQueueStats_Alias(char *refparam, struct dmctx *ctx, void *data { struct queuestats *qts= (struct queuestats*)data; dmuci_get_value_by_section_string(qts->dmsect, "queuestatsalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/routing.c b/dmtree/tr181/routing.c index cd880ec4..3eaa9973 100644 --- a/dmtree/tr181/routing.c +++ b/dmtree/tr181/routing.c @@ -163,7 +163,7 @@ static int get_forwarding_last_inst() static char *forwarding_update_instance_alias_bbfdm(int action, char **last_inst, void *argv[]) { char *instance, *alias; - char buf[8] = {0}; + char buf[64] = {0}; struct uci_section *s = (struct uci_section *) argv[0]; char *inst_opt = (char *) argv[1]; @@ -181,14 +181,14 @@ static char *forwarding_update_instance_alias_bbfdm(int action, char **last_inst } else { snprintf(buf, sizeof(buf), "%d", atoi(*last_inst)+1); } - instance = DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, inst_opt, buf); + instance = dmuci_set_value_by_section_bbfdm(s, inst_opt, buf); } *last_inst = instance; if (action == INSTANCE_MODE_ALIAS) { dmuci_get_value_by_section_string(s, alias_opt, &alias); if (alias[0] == '\0') { snprintf(buf, sizeof(buf), "cpe-%s", instance); - alias = DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, alias_opt, buf); + alias = dmuci_set_value_by_section_bbfdm(s, alias_opt, buf); } snprintf(buf, sizeof(buf), "[%s]", alias); instance = dmstrdup(buf); @@ -223,7 +223,7 @@ static int get_forwarding6_last_inst() static char *forwarding6_update_instance_alias_bbfdm(int action, char **last_inst, void *argv[]) { char *instance, *alias; - char buf[8] = {0}; + char buf[64] = {0}; struct uci_section *s = (struct uci_section *) argv[0]; char *inst_opt = (char *) argv[1]; @@ -241,14 +241,14 @@ static char *forwarding6_update_instance_alias_bbfdm(int action, char **last_ins } else { snprintf(buf, sizeof(buf), "%d", atoi(*last_inst)+1); } - instance = DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, inst_opt, buf); + instance = dmuci_set_value_by_section_bbfdm(s, inst_opt, buf); } *last_inst = instance; if (action == INSTANCE_MODE_ALIAS) { dmuci_get_value_by_section_string(s, alias_opt, &alias); if (alias[0] == '\0') { snprintf(buf, sizeof(buf), "cpe-%s", instance); - alias = DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, alias_opt, buf); + alias = dmuci_set_value_by_section_bbfdm(s, alias_opt, buf); } snprintf(buf, sizeof(buf), "[%s]", alias); instance = dmstrdup(buf); @@ -1007,6 +1007,8 @@ static int get_RoutingRouteInformationInterfaceSetting_RouteLifetime(char *refpa static int get_RoutingRouter_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "router_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1034,8 +1036,9 @@ static int get_router_ipv4forwarding_alias(char *refparam, struct dmctx *ctx, vo get_dmmap_section_of_config_section("dmmap_route_forwarding", "route", section_name(((struct routingfwdargs *)data)->routefwdsection), &dmmap_section); else get_dmmap_section_of_config_section("dmmap_route_forwarding", "route_disabled", section_name(((struct routingfwdargs *)data)->routefwdsection), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "routealias", value); + dmuci_get_value_by_section_string(dmmap_section, "routealias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1055,8 +1058,7 @@ static int set_router_ipv4forwarding_alias(char *refparam, struct dmctx *ctx, vo get_dmmap_section_of_config_section("dmmap_route_forwarding", "route", section_name(((struct routingfwdargs *)data)->routefwdsection), &dmmap_section); else get_dmmap_section_of_config_section("dmmap_route_forwarding", "route_disabled", section_name(((struct routingfwdargs *)data)->routefwdsection), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "routealias", value); + dmuci_set_value_by_section(dmmap_section, "routealias", value); return 0; } return 0; @@ -1070,8 +1072,9 @@ static int get_RoutingRouterIPv6Forwarding_Alias(char *refparam, struct dmctx *c dmmap_section = ((struct routingfwdargs *)data)->routefwdsection; else get_dmmap_section_of_config_section("dmmap_route_forwarding", "route6", section_name(((struct routingfwdargs *)data)->routefwdsection), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "route6alias", value); + dmuci_get_value_by_section_string(dmmap_section, "route6alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1089,8 +1092,7 @@ static int set_RoutingRouterIPv6Forwarding_Alias(char *refparam, struct dmctx *c dmmap_section = ((struct routingfwdargs *)data)->routefwdsection; else get_dmmap_section_of_config_section("dmmap_route_forwarding", "route6", section_name(((struct routingfwdargs *)data)->routefwdsection), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "route6alias", value); + dmuci_set_value_by_section(dmmap_section, "route6alias", value); return 0; } return 0; diff --git a/dmtree/tr181/usb.c b/dmtree/tr181/usb.c index 781f2809..0bf5db9b 100644 --- a/dmtree/tr181/usb.c +++ b/dmtree/tr181/usb.c @@ -489,6 +489,8 @@ static int get_USBInterface_Alias(char *refparam, struct dmctx *ctx, void *data, { struct usb_interface *usbiface= (struct usb_interface *)data; dmuci_get_value_by_section_string(usbiface->dm_usb_iface, "usb_iface_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -594,6 +596,8 @@ static int get_USBPort_Alias(char *refparam, struct dmctx *ctx, void *data, char { struct usb_port* port=(struct usb_port *)data; dmuci_get_value_by_section_string(port->dm_usb_port, "usb_port_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -696,6 +700,8 @@ static int get_USBUSBHostsHost_Alias(char *refparam, struct dmctx *ctx, void *da { struct usb_port* port=(struct usb_port *)data; dmuci_get_value_by_section_string(port->dm_usb_port, "usb_host_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/dmtree/tr181/users.c b/dmtree/tr181/users.c index 0b1b0490..deb895eb 100644 --- a/dmtree/tr181/users.c +++ b/dmtree/tr181/users.c @@ -108,8 +108,9 @@ static int get_user_alias(char *refparam, struct dmctx *ctx, void *data, char *i struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_users", "user", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "user_alias", value); + dmuci_get_value_by_section_string(dmmap_section, "user_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -158,8 +159,7 @@ static int set_user_alias(char *refparam, struct dmctx *ctx, void *data, char *i break; case VALUESET: get_dmmap_section_of_config_section("dmmap_users", "user", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "user_alias", value); + dmuci_set_value_by_section(dmmap_section, "user_alias", value); return 0; } return 0; diff --git a/dmtree/tr181/wifi.c b/dmtree/tr181/wifi.c index 5ba5b6a8..cea88df6 100644 --- a/dmtree/tr181/wifi.c +++ b/dmtree/tr181/wifi.c @@ -1608,8 +1608,9 @@ static int get_WiFiEndPoint_Alias(char *refparam, struct dmctx *ctx, void *data, struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name(((struct wifi_enp_args *)data)->wifi_enp_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "endpointalias", value); + dmuci_get_value_by_section_string(dmmap_section, "endpointalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1624,8 +1625,7 @@ static int set_WiFiEndPoint_Alias(char *refparam, struct dmctx *ctx, void *data, return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name(((struct wifi_enp_args *)data)->wifi_enp_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "endpointalias", value); + dmuci_set_value_by_section(dmmap_section, "endpointalias", value); return 0; } return 0; @@ -1670,11 +1670,11 @@ static int get_WiFiEndPointProfile_Alias(char *refparam, struct dmctx *ctx, void char *epinst = NULL; get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name((struct uci_section*)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "endpointinstance", &epinst); + dmuci_get_value_by_section_string(dmmap_section, "endpointinstance", &epinst); get_dmmap_section_of_config_section_eq("dmmap_wireless", "ep_profile", "ep_key", epinst, &dm); - if (dm) - dmuci_get_value_by_section_string(dm, "ep_profile_alias", value); + dmuci_get_value_by_section_string(dm, "ep_profile_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -1690,11 +1690,9 @@ static int set_WiFiEndPointProfile_Alias(char *refparam, struct dmctx *ctx, void break; case VALUESET: get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name((struct uci_section*)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "endpointinstance", &epinst); + dmuci_get_value_by_section_string(dmmap_section, "endpointinstance", &epinst); get_dmmap_section_of_config_section_eq("dmmap_wireless", "ep_profile", "ep_key", epinst, &dm); - if (dm) - DMUCI_SET_VALUE_BY_SECTION(bbfdm, dm, "ep_profile_alias", value); + dmuci_set_value_by_section_bbfdm(dm, "ep_profile_alias", value); break; } return 0; @@ -2035,8 +2033,9 @@ static int get_radio_alias(char *refparam, struct dmctx *ctx, void *data, char * struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_wireless", "wifi-device", section_name(((struct wifi_radio_args *)data)->wifi_radio_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "radioalias", value); + dmuci_get_value_by_section_string(dmmap_section, "radioalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -2051,8 +2050,7 @@ static int set_radio_alias(char *refparam, struct dmctx *ctx, void *data, char * return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_wireless", "wifi-device", section_name(((struct wifi_radio_args *)data)->wifi_radio_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "radioalias", value); + dmuci_set_value_by_section(dmmap_section, "radioalias", value); return 0; } return 0; @@ -2063,8 +2061,9 @@ static int get_ssid_alias(char *refparam, struct dmctx *ctx, void *data, char *i struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name(((struct wifi_ssid_args *)data)->wifi_ssid_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "ssidalias", value); + dmuci_get_value_by_section_string(dmmap_section, "ssidalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -2079,8 +2078,7 @@ static int set_ssid_alias(char *refparam, struct dmctx *ctx, void *data, char *i return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name(((struct wifi_ssid_args *)data)->wifi_ssid_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "ssidalias", value); + dmuci_set_value_by_section(dmmap_section, "ssidalias", value); return 0; } return 0; @@ -2091,8 +2089,9 @@ static int get_access_point_alias(char *refparam, struct dmctx *ctx, void *data, struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name(((struct wifi_acp_args *)data)->wifi_acp_sec), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "accesspointalias", value); + dmuci_get_value_by_section_string(dmmap_section, "accesspointalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -2107,8 +2106,7 @@ static int set_access_point_alias(char *refparam, struct dmctx *ctx, void *data, return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_wireless", "wifi-iface", section_name(((struct wifi_acp_args *)data)->wifi_acp_sec), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "accesspointalias", value); + dmuci_set_value_by_section(dmmap_section, "accesspointalias", value); return 0; } return 0; diff --git a/dmtree/tr181/x_iopsys_eu_buttons.c b/dmtree/tr181/x_iopsys_eu_buttons.c index 01547c87..86546131 100644 --- a/dmtree/tr181/x_iopsys_eu_buttons.c +++ b/dmtree/tr181/x_iopsys_eu_buttons.c @@ -132,8 +132,9 @@ static int get_x_iopsys_eu_button_alias(char *refparam, struct dmctx *ctx, void struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_buttons", "button", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "buttonalias", value); + dmuci_get_value_by_section_string(dmmap_section, "buttonalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -148,8 +149,7 @@ static int set_x_iopsys_eu_button_alias(char *refparam, struct dmctx *ctx, void return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_buttons", "button", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "buttonalias", value); + dmuci_set_value_by_section(dmmap_section, "buttonalias", value); return 0; } return 0; diff --git a/dmtree/tr181/x_iopsys_eu_dropbear.c b/dmtree/tr181/x_iopsys_eu_dropbear.c index fa69b9d5..3cce9695 100644 --- a/dmtree/tr181/x_iopsys_eu_dropbear.c +++ b/dmtree/tr181/x_iopsys_eu_dropbear.c @@ -323,8 +323,9 @@ static int get_x_iopsys_eu_dropbear_alias(char *refparam, struct dmctx *ctx, voi struct uci_section *dmmap_section = NULL; get_dmmap_section_of_config_section("dmmap_dropbear", "dropbear", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_get_value_by_section_string(dmmap_section, "dropbearalias", value); + dmuci_get_value_by_section_string(dmmap_section, "dropbearalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -339,8 +340,7 @@ static int set_x_iopsys_eu_dropbear_alias(char *refparam, struct dmctx *ctx, voi return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_dropbear", "dropbear", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "dropbearalias", value); + dmuci_set_value_by_section(dmmap_section, "dropbearalias", value); return 0; } return 0; diff --git a/dmtree/tr181/x_iopsys_eu_owsd.c b/dmtree/tr181/x_iopsys_eu_owsd.c index 1c4812cd..7f1b483b 100644 --- a/dmtree/tr181/x_iopsys_eu_owsd.c +++ b/dmtree/tr181/x_iopsys_eu_owsd.c @@ -243,6 +243,8 @@ static int get_x_iopsys_eu_owsd_virtualhost_alias(char *refparam, struct dmctx * get_dmmap_section_of_config_section("dmmap_owsd", "owsd-listen", section_name((struct uci_section *)data), &dmmap_section); dmuci_get_value_by_section_string(dmmap_section, "olistenalias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -257,8 +259,7 @@ static int set_x_iopsys_eu_owsd_virtualhost_alias(char *refparam, struct dmctx * return 0; case VALUESET: get_dmmap_section_of_config_section("dmmap_owsd", "owsd-listen", section_name((struct uci_section *)data), &dmmap_section); - if (dmmap_section) - dmuci_set_value_by_section(dmmap_section, "olistenalias", value); + dmuci_set_value_by_section(dmmap_section, "olistenalias", value); return 0; } return 0; diff --git a/dmtree/tr181/xmpp.c b/dmtree/tr181/xmpp.c index c568d867..8f581938 100644 --- a/dmtree/tr181/xmpp.c +++ b/dmtree/tr181/xmpp.c @@ -121,6 +121,8 @@ static int set_connection_enable(char *refparam, struct dmctx *ctx, void *data, static int get_xmpp_connection_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "connection_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } @@ -433,6 +435,8 @@ static int set_xmpp_connection_server_enable(char *refparam, struct dmctx *ctx, static int get_xmpp_connection_server_alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { dmuci_get_value_by_section_string((struct uci_section *)data, "connection_server_alias", value); + if ((*value)[0] == '\0') + dmasprintf(value, "cpe-%s", instance); return 0; } diff --git a/libbbf_api/dmbbf.c b/libbbf_api/dmbbf.c index 1df82b69..66429184 100644 --- a/libbbf_api/dmbbf.c +++ b/libbbf_api/dmbbf.c @@ -552,14 +552,14 @@ char *update_instance_alias_bbfdm(int action, char **last_inst , void *argv[]) snprintf(buf, sizeof(buf), "%d", 1); else snprintf(buf, sizeof(buf), "%d", atoi(*last_inst)+1); - instance = DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, inst_opt, buf); + instance = dmuci_set_value_by_section_bbfdm(s, inst_opt, buf); } *last_inst = instance; if (action == INSTANCE_MODE_ALIAS) { dmuci_get_value_by_section_string(s, alias_opt, &alias); if (alias[0] == '\0') { snprintf(buf, sizeof(buf), "cpe-%s", instance); - alias = DMUCI_SET_VALUE_BY_SECTION(bbfdm, s, alias_opt, buf); + alias = dmuci_set_value_by_section_bbfdm(s, alias_opt, buf); } snprintf(buf, sizeof(buf), "[%s]", alias); instance = dmstrdup(buf); @@ -600,13 +600,13 @@ char *update_instance_alias(int action, char **last_inst, void *argv[]) char *update_instance_without_section(int action, char **last_inst, void *argv[]) { char *instance, buf[64] = {0}; - long instnbr = (long) argv[0]; + int instnbr = (int) argv[0]; if (action == INSTANCE_MODE_ALIAS) { - snprintf(buf, sizeof(buf), "[cpe-%ld]", instnbr); + snprintf(buf, sizeof(buf), "[cpe-%d]", instnbr); instance = dmstrdup(buf); } else { - snprintf(buf, sizeof(buf), "%ld", instnbr); + snprintf(buf, sizeof(buf), "%d", instnbr); instance = dmstrdup(buf); } return instance;