SLOG(LOG_INFO, TAG_VCC, "Client result callback called");
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
/* Release result */
- if (NULL != temp_text) free(temp_text);
+ if (temp_text)
+ free(temp_text);
+ temp_text = NULL;
return EINA_FALSE;
}
vc_client_not_use_callback(g_vc);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
/* Release result */
if (NULL != temp_text) {
vc_cmd_print_list(vc_cmd_list);
- bool cb_ret;
+ bool cb_ret = false;
vc_mgr_client_set_all_result(g_vc_m, event, temp_text);
}
/* Release list */
- vc_cmd_list_destroy(vc_cmd_list, true);
+ if (vc_cmd_list)
+ vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
vc_mgr_client_set_exclusive_command(g_vc_m, false);
}
/* Release list */
- vc_cmd_list_destroy(vc_cmd_list, true);
+ if (vc_cmd_list)
+ vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
return;
}
vc_mgr_client_not_use_callback(g_vc_m);
SLOG(LOG_INFO, TAG_VCM, "Result callback called");
- vc_cmd_list_destroy(vc_cmd_list, true);
+ if (vc_cmd_list)
+ vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
/* Release result */
- if (NULL != temp_text) free(temp_text);
+ if (temp_text)
+ free(temp_text);
+ temp_text = NULL;
return EINA_FALSE;
}
if (NULL != temp_text) free(temp_text);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
return EINA_FALSE;
}
SLOG(LOG_DEBUG, vc_db_tag(), "Fail to add command to list");
vc_cmd_destroy(temp_cmd);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
if (NULL != *result_text) {
free(*result_text);
*result_text = NULL;
SLOG(LOG_DEBUG, vc_db_tag(), "Fail to add command to list");
vc_cmd_destroy(temp_cmd);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_finalize(stmt);
return temp_cmd;
}
+static int __vc_db_command_destroy(vc_cmd_h vc_command)
+{
+ if (NULL == vc_command) {
+ SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] Input parameter is NULL");
+ return VC_ERROR_INVALID_PARAMETER;
+ }
+
+ vc_cmd_s* command = NULL;
+ command = (vc_cmd_s*)vc_command;
+
+ SLOG(LOG_DEBUG, vc_db_tag(), "[Destroy command][%p]", command);
+
+ if (NULL != command) {
+ if (NULL != command->command) {
+ free(command->command);
+ command->command = NULL;
+ }
+ if (NULL != command->parameter) {
+ free(command->parameter);
+ command->parameter = NULL;
+ }
+ if (NULL != command->invocation_name) {
+ free(command->invocation_name);
+ command->invocation_name = NULL;
+ }
+ if (NULL != command->appid) {
+ free(command->appid);
+ command->appid = NULL;
+ }
+ if (NULL != command->fixed) {
+ free(command->fixed);
+ command->fixed = NULL;
+ }
+ if (NULL != command->coordinates) {
+ free(command->coordinates);
+ command->coordinates = NULL;
+ }
+ free(command);
+ command = NULL;
+ }
+
+ return VC_ERROR_NONE;
+}
+
+
static int __vc_db_create_table(sqlite3* db_handle, const char* table)
{
SLOG(LOG_INFO, vc_db_tag(), "[INFO] Create DB table (%s)", table);
SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] Fail to generate command, %d", ret);
if (NULL != tmp_cmd) {
- vc_cmd_destroy((vc_cmd_h)tmp_cmd);
+ __vc_db_command_destory((vc_cmd_h)tmp_cmd);
}
return ret;
}
free(fixed_cmd);
fixed_cmd = NULL;
}
- vc_cmd_destroy((vc_cmd_h)tmp_cmd);
+ __vc_db_command_destory((vc_cmd_h)tmp_cmd);
break;
}
free(fixed_cmd);
fixed_cmd = NULL;
}
- vc_cmd_destroy((vc_cmd_h)tmp_cmd);
+ __vc_db_command_destory((vc_cmd_h)tmp_cmd);
break;
}
}
free(fixed_cmd);
fixed_cmd = NULL;
}
- vc_cmd_destroy((vc_cmd_h)tmp_cmd);
+ __vc_db_command_destory((vc_cmd_h)tmp_cmd);
return VC_DB_ERROR_NONE;
}
static int g_privilege_allowed = 1; /* Always True */
static cynara *p_cynara = NULL;
+static GList *g_cmd_list = NULL;
static GList *g_cmdlist_list = NULL;
return VC_ERROR_NONE;
}
+static bool __vc_cmd_is_valid(vc_cmd_h vc_command)
+{
+ if (NULL == g_cmd_list) {
+ SLOG(LOG_WARN, TAG_VCCMD, "[WARNING] cmd_list is not valid");
+ return false;
+ }
+
+ if (g_list_length(g_cmd_list) == 0) {
+ SLOG(LOG_WARN, TAG_VCCMD, "[WARNING] cmd_list is not valid");
+ return false;
+ }
+
+ bool flag = false;
+ vc_cmd_s *command = NULL;
+ command = (vc_cmd_s *)vc_command;
+
+ GList *iter = NULL;
+ iter = g_list_first(g_cmd_list);
+ while (NULL != iter) {
+ vc_cmd_s *data = NULL;
+ data = iter->data;
+ if (NULL != data && command == data) {
+ flag = true;
+ break;
+ }
+ iter = g_list_next(iter);
+ }
+
+ if (false == flag)
+ SLOG(LOG_WARN, TAG_VCCMD, "[WARNING] command(%p) is not valid", command);
+
+ return flag;
+}
+
+static bool __vc_cmd_list_is_valid(vc_cmd_list_h vc_cmd_list)
+{
+ if (NULL == g_cmdlist_list) {
+ SLOG(LOG_WARN, TAG_VCCMD, "[WARNING] cmdlist_list is not valid");
+ return false;
+ }
+
+ if (g_list_length(g_cmdlist_list) == 0) {
+ SLOG(LOG_WARN, TAG_VCCMD, "[WARNING] cmdlist_list is not valid");
+ return false;
+ }
+
+ bool flag = false;
+ vc_cmd_list_s *list = NULL;
+ list = (vc_cmd_list_s *)vc_cmd_list;
+
+ GList *iter = NULL;
+ iter = g_list_first(g_cmdlist_list);
+ while (NULL != iter) {
+ vc_cmd_list_s *data = NULL;
+ data = iter->data;
+ if (NULL != data && list == data) {
+ flag = true;
+ break;
+ }
+ iter = g_list_next(iter);
+ }
+
+ if (false == flag)
+ SLOG(LOG_WARN, TAG_VCCMD, "[WARNING] list(%p) is not valid", list);
+
+ return flag;
+}
+
int vc_cmd_list_create(vc_cmd_list_h* vc_cmd_list)
{
if (0 != __vc_cmd_get_feature_enabled()) {
return VC_ERROR_INVALID_PARAMETER;
}
+ if (false == __vc_cmd_list_is_valid(vc_cmd_list)) {
+ SLOG(LOG_ERROR, TAG_VCCMD, "[ERROR] Input parameter is NULL");
+ return VC_ERROR_INVALID_PARAMETER;
+ }
+
vc_cmd_list_remove_all(vc_cmd_list, release_command);
vc_cmd_list_s* list = NULL;
while (NULL != iter) {
data = iter->data;
- if (data && list == data) {
+ if (NULL != data && list == data) {
g_cmdlist_list = g_list_remove_link(g_cmdlist_list, iter);
free(data);
SLOG(LOG_DEBUG, TAG_VCCMD, "Client destroy");
g_list_free(iter);
+ iter = NULL;
return VC_ERROR_NONE;
}
, list, release_command ? "true" : "false");
int count = g_slist_length(list->list);
-
- int i ;
- vc_cmd_s *temp_cmd;
-
- for (i = 0; i < count ; i++) {
- temp_cmd = g_slist_nth_data(list->list, 0);
+ for (int i = 0; i < count ; i++) {
+ vc_cmd_s *temp_cmd = g_slist_nth_data(list->list, 0);
if (NULL != temp_cmd) {
list->list = g_slist_remove(list->list, temp_cmd);
*vc_command = (vc_cmd_h)command;
+ g_cmd_list = g_list_append(g_cmd_list, command);
+
SLOG(LOG_DEBUG, TAG_VCCMD, "[Create command][%p]", *vc_command);
return VC_ERROR_NONE;
return VC_ERROR_INVALID_PARAMETER;
}
+ if (false == __vc_cmd_is_valid(vc_command)) {
+ SLOG(LOG_ERROR, TAG_VCCMD, "[ERROR] Input parameter is NULL");
+ return VC_ERROR_INVALID_PARAMETER;
+ }
+
vc_cmd_s* command = NULL;
command = (vc_cmd_s*)vc_command;
SLOG(LOG_DEBUG, TAG_VCCMD, "[Destroy command][%p]", command);
+ bool flag = false;
+ GList *iter = NULL;
+ iter = g_list_first(g_cmd_list);
+ while (NULL != iter) {
+ vc_cmd_s *data = NULL;
+ data = iter->data;
+ if (NULL != data && command == data) {
+ g_cmd_list = g_list_remove_link(g_cmd_list, iter);
+ flag = true;
+ break;
+ }
+ iter = g_list_next(iter);
+ }
+
+ if (false == flag) {
+ SLOG(LOG_ERROR, TAG_VCCMD, "Fail to destroy client : handle is not valid");
+ return VC_ERROR_INVALID_PARAMETER;
+ }
+
+ if (iter)
+ g_list_free(iter);
+ iter = NULL;
+
if (NULL != command) {
if (NULL != command->command) {
free(command->command);
if (!filtered_id) {
SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to allocate memory");
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
return VCD_ERROR_OUT_OF_MEMORY;
}
int filtered_count = 0;
vcd_config_set_service_state(VCD_STATE_READY);
vcdc_send_service_state(VCD_STATE_READY);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
if (NULL != filtered_id) {
free(filtered_id);
filtered_id = NULL;
if (0 != vc_cmd_list_create(&widget_cmd_list)) {
SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to create widget command list handle");
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
return VCD_ERROR_OUT_OF_MEMORY;
}
if (0 != vc_cmd_list_create(&foreground_cmd_list)) {
SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to create foreground command list handle");
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
vc_cmd_list_destroy(widget_cmd_list, true);
+ widget_cmd_list = NULL;
return VCD_ERROR_OUT_OF_MEMORY;
}
}
}
vc_cmd_list_destroy(foreground_cmd_list, true);
+ foreground_cmd_list = NULL;
}
vc_cmd_list_destroy(widget_cmd_list, true);
+ widget_cmd_list = NULL;
} else {
SLOG(LOG_DEBUG, TAG_VCD, "[Server] Engine result is NULL");
}
vcd_client_manager_set_exclusive(false);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
return VCD_ERROR_NONE;
}
if (0 != vc_cmd_list_create(&temp_list)) {
SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to create widget command list handle");
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
return VCD_ERROR_OUT_OF_MEMORY;
}
if (0 != vc_cmd_list_create(&widget_cmd_list)) {
SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to create widget command list handle");
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
vc_cmd_list_destroy(temp_list, true);
+ temp_list = NULL;
return VCD_ERROR_OUT_OF_MEMORY;
}
if (0 != vc_cmd_list_create(&foreground_cmd_list)) {
SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to create foreground command list handle");
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
vc_cmd_list_destroy(widget_cmd_list, true);
+ widget_cmd_list = NULL;
return VCD_ERROR_OUT_OF_MEMORY;
}
}
}
vc_cmd_list_destroy(foreground_cmd_list, true);
+ foreground_cmd_list = NULL;
}
vc_cmd_list_destroy(widget_cmd_list, true);
+ widget_cmd_list = NULL;
}
int pid = vcd_client_widget_get_foreground_pid();
vc_info_parser_set_result(all_result, event, msg, vc_cmd_list, false);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
if (-1 != vcd_client_manager_get_pid()) {
/* Manager client is available */
/* exclusive command */
vc_info_parser_set_result(all_result, event, msg, vc_cmd_list, true);
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
if (-1 != vcd_client_manager_get_pid()) {
/* Manager client is available */
}
vc_cmd_list_destroy(vc_cmd_list, true);
+ vc_cmd_list = NULL;
return;
#endif