diff --git a/bbf_plugin/syslog.c b/bbf_plugin/syslog.c index 0937600b1c103c2071d8bd50b2dfaba4828207fb..76717936471672597ea8d4c006c2e576c8004d22 100644 --- a/bbf_plugin/syslog.c +++ b/bbf_plugin/syslog.c @@ -884,9 +884,10 @@ static int set_SyslogActionLogRemote_Address(char *refparam, struct dmctx *ctx, static int get_SyslogActionLogRemote_Protocol(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { + struct uci_section *r = (struct uci_section *)(((struct action_data *)((struct dm_data *)data)->additional_data)->remote_section); char *proto; - dmuci_get_value_by_section_string(((struct dm_data *)data)->config_section, "proto", &proto); + dmuci_get_value_by_section_string(r, "proto", &proto); if (DM_STRCMP(proto, "tls") == 0) { *value = "TLS"; } else if (DM_STRCMP(proto, "tcp") == 0) { @@ -900,6 +901,7 @@ static int get_SyslogActionLogRemote_Protocol(char *refparam, struct dmctx *ctx, static int set_SyslogActionLogRemote_Protocol(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { + struct uci_section *r = (struct uci_section *)(((struct action_data *)((struct dm_data *)data)->additional_data)->remote_section); switch (action) { case VALUECHECK: if (bbfdm_validate_string(ctx, value, -1, -1, Protocol, NULL)) @@ -907,11 +909,11 @@ static int set_SyslogActionLogRemote_Protocol(char *refparam, struct dmctx *ctx, break; case VALUESET: if (strcmp("TCP", value) == 0) - dmuci_set_value_by_section(((struct dm_data *)data)->config_section, "proto", "tcp"); + dmuci_set_value_by_section(r, "proto", "tcp"); else if (strcmp("UDP", value) == 0) - dmuci_set_value_by_section(((struct dm_data *)data)->config_section, "proto", "udp"); + dmuci_set_value_by_section(r, "proto", "udp"); else if (strcmp("TLS", value) == 0) - dmuci_set_value_by_section(((struct dm_data *)data)->config_section, "proto", "tls"); + dmuci_set_value_by_section(r, "proto", "tls"); break; }