mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
twamp: fixed a crash
The IP.Interface object has been reworked in ticket 2920 without updating twamp accordingly causing this crash
This commit is contained in:
parent
9821c3fbac
commit
7e1d84b6d6
1 changed files with 5 additions and 12 deletions
|
|
@ -47,17 +47,11 @@ static char *get_last_id(char *package, char *section)
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ip_args
|
|
||||||
{
|
|
||||||
struct uci_section *ip_sec;
|
|
||||||
char *ip_4address;
|
|
||||||
};
|
|
||||||
|
|
||||||
static int addObjIPInterfaceTWAMPReflector(char *refparam, struct dmctx *ctx, void *data, char **instance)
|
static int addObjIPInterfaceTWAMPReflector(char *refparam, struct dmctx *ctx, void *data, char **instance)
|
||||||
{
|
{
|
||||||
struct uci_section *connection = NULL;
|
struct uci_section *connection = NULL;
|
||||||
|
|
||||||
char *last_inst = get_last_instance_with_option("twamp", "twamp_reflector", "interface", section_name(((struct ip_args *)data)->ip_sec), "twamp_inst");
|
char *last_inst = get_last_instance_with_option("twamp", "twamp_reflector", "interface", section_name((struct uci_section *)data), "twamp_inst");
|
||||||
char *id = get_last_id("twamp", "twamp_reflector");
|
char *id = get_last_id("twamp", "twamp_reflector");
|
||||||
|
|
||||||
dmuci_add_section("twamp", "twamp_reflector", &connection);
|
dmuci_add_section("twamp", "twamp_reflector", &connection);
|
||||||
|
|
@ -65,7 +59,7 @@ static int addObjIPInterfaceTWAMPReflector(char *refparam, struct dmctx *ctx, vo
|
||||||
dmuci_set_value_by_section(connection, "twamp_inst", *instance);
|
dmuci_set_value_by_section(connection, "twamp_inst", *instance);
|
||||||
dmuci_set_value_by_section(connection, "id", id);
|
dmuci_set_value_by_section(connection, "id", id);
|
||||||
dmuci_set_value_by_section(connection, "enable", "0");
|
dmuci_set_value_by_section(connection, "enable", "0");
|
||||||
dmuci_set_value_by_section(connection, "interface", section_name(((struct ip_args *)data)->ip_sec));
|
dmuci_set_value_by_section(connection, "interface", section_name((struct uci_section *)data));
|
||||||
dmuci_set_value_by_section(connection, "port", "862");
|
dmuci_set_value_by_section(connection, "port", "862");
|
||||||
dmuci_set_value_by_section(connection, "max_ttl", "1");
|
dmuci_set_value_by_section(connection, "max_ttl", "1");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -76,16 +70,15 @@ static int delObjIPInterfaceTWAMPReflector(char *refparam, struct dmctx *ctx, vo
|
||||||
int found = 0;
|
int found = 0;
|
||||||
struct uci_section *s, *ss = NULL;
|
struct uci_section *s, *ss = NULL;
|
||||||
char *interface;
|
char *interface;
|
||||||
struct uci_section *section = (struct uci_section *)data;
|
|
||||||
|
|
||||||
switch (del_action) {
|
switch (del_action) {
|
||||||
case DEL_INST:
|
case DEL_INST:
|
||||||
dmuci_delete_by_section(section, NULL, NULL);
|
dmuci_delete_by_section((struct uci_section *)data, NULL, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
case DEL_ALL:
|
case DEL_ALL:
|
||||||
uci_foreach_sections("twamp", "twamp_reflector", s) {
|
uci_foreach_sections("twamp", "twamp_reflector", s) {
|
||||||
dmuci_get_value_by_section_string(s, "interface", &interface);
|
dmuci_get_value_by_section_string(s, "interface", &interface);
|
||||||
if(strcmp(interface, section_name(((struct ip_args *)data)->ip_sec)) != 0)
|
if (strcmp(interface, section_name((struct uci_section *)data)) != 0)
|
||||||
continue;
|
continue;
|
||||||
if (found != 0) {
|
if (found != 0) {
|
||||||
dmuci_delete_by_section(ss, NULL, NULL);
|
dmuci_delete_by_section(ss, NULL, NULL);
|
||||||
|
|
@ -277,7 +270,7 @@ static int browseIPInterfaceTWAMPReflectorInst(struct dmctx *dmctx, DMNODE *pare
|
||||||
struct uci_section *s = NULL;
|
struct uci_section *s = NULL;
|
||||||
char *inst = NULL, *max_inst = NULL;
|
char *inst = NULL, *max_inst = NULL;
|
||||||
|
|
||||||
uci_foreach_option_eq("twamp", "twamp_reflector", "interface", section_name(((struct ip_args *)prev_data)->ip_sec), s) {
|
uci_foreach_option_eq("twamp", "twamp_reflector", "interface", section_name((struct uci_section *)prev_data), s) {
|
||||||
|
|
||||||
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 3,
|
inst = handle_update_instance(2, dmctx, &max_inst, update_instance_alias, 3,
|
||||||
s, "twamp_inst", "twamp_alias");
|
s, "twamp_inst", "twamp_alias");
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue