static void __mc_get_data(gpointer data, gpointer user_data)
{
+
mc_list_data_set_t *_data = (mc_list_data_set_t *)data;
mc_list_user_data *_user_data = (mc_list_user_data *)user_data;
- mc_comm_msg_s *_message = (mc_comm_msg_s *)_user_data->message;
+ mc_comm_msg_s *_message = NULL;
+ unsigned int i = 0;
+ unsigned int length_of_list = 0;
+ char *value = NULL;
+
+ mc_retm_if(!data, "Invalid data");
+ mc_retm_if(!user_data, "Invalid user_data");
+
+ _message = (mc_comm_msg_s *)_user_data->message;
+ mc_retm_if(_message->msg_size == 0, "Invalid msg_size");
+ mc_retm_if(!MC_STRING_VALID(_message->msg), "Invalid msg");
if (_data->s_data != NULL) {
- unsigned int i = 0;
- unsigned int length_of_list = g_list_length(_data->s_data);
- char *value = NULL;
+
+ length_of_list = g_list_length(_data->s_data);
+
for (i = 0; i < length_of_list; i++) {
+
value = (char *)g_list_nth_data(_data->s_data, i);
- if ((value != NULL) && (strlen(value) == _message->msg_size)) {
- if (strncmp(value, _message->msg, _message->msg_size) == 0) {
- _data->s_data = g_list_remove(_data->s_data, value);
- MC_SAFE_FREE(value);
- _user_data->result++;
- }
+
+ if (g_strcmp0(value, _message->msg) == 0) {
+ _data->s_data = g_list_remove(_data->s_data, value);
+ MC_SAFE_FREE(value);
+ _user_data->result++;
+ break;
}
}
+
if (g_list_length(_data->s_data) == 0)
_data->s_data = NULL;
}