mirror of
https://dev.iopsys.eu/bbf/icwmp.git
synced 2025-12-10 07:44:41 +01:00
Strip logging for invalid inform parameter name
This commit is contained in:
parent
2a77da214b
commit
5b94e33768
3 changed files with 39 additions and 2 deletions
|
|
@ -359,6 +359,43 @@ char *cwmp_get_parameter_names(const char *parameter_name, bool next_level, stru
|
|||
return NULL;
|
||||
}
|
||||
|
||||
char *cwmp_validate_parameter_name(const char *param_name, bool next_level, struct list_head *param_list)
|
||||
{
|
||||
struct blob_buf buf = {0};
|
||||
struct list_params_result get_result = {
|
||||
.parameters_list = param_list,
|
||||
.error = FAULT_CPE_NO_FAULT
|
||||
};
|
||||
unsigned int len = CWMP_STRLEN(param_name);
|
||||
|
||||
if (len > 2 && param_name[len - 1] == '.' && param_name[len - 2] == '*')
|
||||
return "9005";
|
||||
|
||||
const char *object = len ? param_name : "";
|
||||
|
||||
CWMP_MEMSET(&buf, 0, sizeof(struct blob_buf));
|
||||
blob_buf_init(&buf, 0);
|
||||
|
||||
bb_add_string(&buf, "path", object);
|
||||
blobmsg_add_u8(&buf, "first_level", next_level);
|
||||
prepare_optional_table(&buf);
|
||||
|
||||
int e = icwmp_ubus_invoke(BBFDM_OBJECT_NAME, "schema", buf.head, ubus_get_parameter_callback, &get_result);
|
||||
blob_buf_free(&buf);
|
||||
|
||||
if (e < 0)
|
||||
return "9002";
|
||||
|
||||
if (get_result.error) {
|
||||
char err[8] = {0};
|
||||
|
||||
snprintf(err, sizeof(err), "%d", get_result.error);
|
||||
return icwmp_strdup(err);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set multiple parameter values
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ bool cwmp_get_parameter_value(const char *parameter_name, struct cwmp_dm_paramet
|
|||
|
||||
char *cwmp_get_parameter_values(const char *parameter_name, struct list_head *parameters_list);
|
||||
char *cwmp_get_parameter_names(const char *parameter_name, bool next_level, struct list_head *parameters_list);
|
||||
char *cwmp_validate_parameter_name(const char *param_name, bool next_level, struct list_head *param_list);
|
||||
|
||||
int cwmp_set_parameter_value(const char *parameter_name, const char *parameter_value, struct list_head *faults_list);
|
||||
int cwmp_set_multi_parameters_value(struct list_head *parameters_values_list, struct list_head *faults_list);
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ char *check_valid_parameter_path(char *parameter_name)
|
|||
LIST_HEAD(parameters_list);
|
||||
|
||||
/*check if parameter name is valid parameter path*/
|
||||
error = cwmp_get_parameter_names(parameter_name, false, ¶meters_list);
|
||||
error = cwmp_validate_parameter_name(parameter_name, false, ¶meters_list);
|
||||
|
||||
if (error && CWMP_STRCMP(error, "9003") == 0)
|
||||
error = cwmp_get_parameter_values(parameter_name, ¶meters_list);
|
||||
|
|
@ -544,7 +544,6 @@ void set_default_forced_active_parameters_notifications()
|
|||
continue;
|
||||
|
||||
if (strcmp(fault, "9005") == 0) {
|
||||
CWMP_LOG(WARNING, "The parameter %s is wrong path", default_active_notifications_parameters[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue