Make list_value_change add/clean in mutex block

This commit is contained in:
Omar Kallel 2021-03-24 11:25:09 +01:00
parent 5a4e7a0cfb
commit 00ac93d867
3 changed files with 9 additions and 2 deletions

3
cwmp.c
View file

@ -335,7 +335,6 @@ int run_session_end_func()
}
end_session_flag = 0;
cwmp_free_all_dm_parameter_list(&list_value_change);
return CWMP_OK;
}
@ -369,7 +368,7 @@ void cwmp_schedule_session(struct cwmp *cwmp)
if (is_notify > 0 || access(DM_ENABLED_NOTIFY, F_OK) < 0)
cwmp_update_enabled_notify_file();
cwmp_prepare_value_change(cwmp);
cwmp_free_all_dm_parameter_list(&list_value_change);
clean_list_value_change();
if ((error = cwmp_move_session_to_session_send(cwmp, session))) {
CWMP_LOG(EMERG, "FATAL error in the mutex process in the session scheduler!");
exit(EXIT_FAILURE);

View file

@ -39,6 +39,7 @@ void sotfware_version_value_change(struct cwmp *cwmp, struct transfer_complete *
void *thread_periodic_check_notify(void *v);
void send_active_value_change(void);
void add_list_value_change(char *param_name, char *param_data, char *param_type);
void clean_list_value_change();
void add_lw_list_value_change(char *param_name, char *param_data, char *param_type);
char *calculate_lwnotification_cnonce();
void cwmp_lwnotification();

View file

@ -163,6 +163,13 @@ void add_list_value_change(char *param_name, char *param_data, char *param_type)
pthread_mutex_unlock(&(mutex_value_change));
}
void clean_list_value_change()
{
pthread_mutex_lock(&(mutex_value_change));
cwmp_free_all_dm_parameter_list(&list_value_change);
pthread_mutex_unlock(&(mutex_value_change));
}
void send_active_value_change(void)
{
struct cwmp *cwmp = &cwmp_main;