static pthread_mutex_t g_dbus_mutex = PTHREAD_MUTEX_INITIALIZER;
static int g_waiting_time = 3000;
+static int g_waiting_short_time = 200;
static bool g_is_connection_opened = false;
static Ecore_Fd_Handler* g_fd_handler = NULL;
DBusMessage* result_msg = NULL;
int result = 0;
- result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, -1, &err);
+ result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_short_time, &err);
if (dbus_error_is_set(&err)) {
SLOG(LOG_DEBUG, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message); //LCOV_EXCL_LINE
result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
dbus_message_unref(msg);
+ SLOG(LOG_DEBUG, TAG_VCC, "[DEBUG] Receive the reply for initializing");
+
if (dbus_error_is_set(&err)) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Dbus Error (%s)", err.message); //LCOV_EXCL_LINE
dbus_error_free(&err);
+ return VC_ERROR_OPERATION_FAILED;
}
if (NULL != result_msg) {
*service_state = tmp_service_state;
*daemon_pid = tmp_daemon_pid;
+ SLOG(LOG_DEBUG, TAG_VCC, "[DEBUG] Get arguments for initializing");
+
/* add a rule for daemon error */
char rule[256] = {0, };
snprintf(rule, 256, "sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',type='signal',arg0='%s'", VC_SERVER_SERVICE_INTERFACE);
return VC_ERROR_NONE;
}
}
- dbus_bus_add_match(g_conn_listener, rule, &err);
-
- if (dbus_error_is_set(&err)) {
- SLOG(LOG_ERROR, TAG_VCC, "Match Error (%s)", err.message); //LCOV_EXCL_LINE
- dbus_error_free(&err);
- }
+ dbus_bus_add_match(g_conn_listener, rule, NULL);
SLOG(LOG_DEBUG, TAG_VCC, "@@ vc initialize : result = %d mgr = %d service = %d daemon_pid = %d", result, *mgr_pid, *service_state, *daemon_pid); //LCOV_EXCL_LINE
} else {
static pthread_mutex_t g_m_dbus_mutex = PTHREAD_MUTEX_INITIALIZER;
static int g_m_waiting_time = 3000;
+static int g_m_waiting_short_time = 200;
static bool g_is_connection_opened = false;
static Ecore_Fd_Handler* g_m_fd_handler = NULL;
DBusMessage* result_msg = NULL;
int result = 0;
- result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, -1, &err);
+ result_msg = dbus_connection_send_with_reply_and_block(g_m_conn_sender, msg, g_m_waiting_short_time, &err);
if (dbus_error_is_set(&err)) {
SLOG(LOG_DEBUG, TAG_VCM, "[ERROR] Dbus Error (%s)", err.message);
return VC_ERROR_NONE;
}
}
- dbus_bus_add_match(g_m_conn_listener, rule_err, &err);
-
- if (dbus_error_is_set(&err)) {
- SLOG(LOG_ERROR, TAG_VCM, "Match Error (%s)", err.message);
- dbus_error_free(&err);
- }
+ dbus_bus_add_match(g_m_conn_listener, rule_err, NULL);
SLOG(LOG_INFO, TAG_VCM, "@@ vc mgr initialize : result = %d, service state = %d, foreground = %d, daemon_pid = %d",
result, *service_state, *foreground, *daemon_pid);
static pthread_mutex_t g_w_init_mutex = PTHREAD_MUTEX_INITIALIZER;
static int g_w_waiting_time = 3000;
+static int g_w_waiting_short_time = 200;
static bool g_is_connection_opened = false;
static Ecore_Fd_Handler* g_w_fd_handler = NULL;
DBusMessage* result_msg = NULL;
int result = 0;
- result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, -1, &err);
+ result_msg = dbus_connection_send_with_reply_and_block(g_w_conn_sender, msg, g_w_waiting_short_time, &err);
if (dbus_error_is_set(&err)) {
if (!strncmp(err.name, DBUS_ERROR_SERVICE_UNKNOWN, strlen(err.name)))
return VC_ERROR_NONE;
}
}
- dbus_bus_add_match(g_w_conn_listener, rule_err, &err);
- if (dbus_error_is_set(&err)) {
- SLOG(LOG_ERROR, TAG_VCW, "Match Error (%s)", err.message);
- dbus_error_free(&err);
- pthread_mutex_unlock(&g_w_init_mutex);
- return VC_ERROR_OPERATION_FAILED;
- }
+ dbus_bus_add_match(g_w_conn_listener, rule_err, NULL);
SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget initialize : result = %d service = %d daemon_pid = %d", result, *service_state, *daemon_pid);
} else {
if (VC_COMMAND_TYPE_BACKGROUND == type && 0 == strncmp(appid, temp_text, strlen(appid))) {
SLOG(LOG_DEBUG, vc_db_tag(), "Skip get background commands when app is foreground, appid(%s)", appid);
- free(temp_text);
- temp_text = NULL;
-
vc_cmd_destroy(temp_cmd);
temp_cmd = NULL;
}
}
- if (NULL != temp_text) {
- free(temp_text);
- temp_text = NULL;
- }
-
temp = sqlite3_column_int(stmt, 0);
vc_cmd_set_id(temp_cmd, temp);
__vc_db_extract_unfixed_command(*result_text, temp_fixed, &temp_unfixed);
vc_cmd_set_command(temp_cmd, temp_fixed);
vc_cmd_set_unfixed_command(temp_cmd, temp_unfixed);
- if (NULL != temp_unfixed) {
- free(temp_unfixed);
- temp_unfixed = NULL;
- }
} else {
vc_cmd_set_command(temp_cmd, temp_command);
}
g_slist_free(cmd_list);
SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] Fail to insert command, %d", ret);
+ vc_cmd_destroy((vc_cmd_h)tmp_cmd);
return ret;
}
cmd_list = NULL;
/* loop again if we haven't read a message */
if (NULL == msg) {
+ SLOG(LOG_INFO, TAG_VCD, "@@@ no Dbus message anymore");
break;
}
}
/* Flush messages which are received before fd event handler registration */
- while (DBUS_DISPATCH_DATA_REMAINS == dbus_connection_get_dispatch_status(g_conn_listener)) {
+ while (DBUS_DISPATCH_COMPLETE != dbus_connection_get_dispatch_status(g_conn_listener)) {
+ SLOG(LOG_DEBUG, TAG_VCD, "Dbus data is remained, g_conn_listener(%p)", g_conn_listener);
listener_event_callback(NULL, NULL);
}
- /* add a rule for getting signal */
- char rule[128];
- snprintf(rule, 128, "type='signal',interface='%s'", VC_SERVER_SERVICE_INTERFACE);
-
- /* add a rule for which messages we want to see */
- dbus_bus_add_match(g_conn_listener, rule, &err);/* see signals from the given interface */
-
- if (dbus_error_is_set(&err)) {
- SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] dbus_bus_add_match() : %s", err.message);
- dbus_error_free(&err);
- __vcd_dbus_connection_free();
- return VCD_ERROR_OPERATION_FAILED;
- }
-
+ /* add fd handler to receive dbus metohd */
int fd = 0;
if (1 != dbus_connection_get_unix_fd(g_conn_listener, &fd)) {
SLOG(LOG_ERROR, TAG_VCD, "fail to get fd from dbus ");
SLOG(LOG_DEBUG, TAG_VCD, "Get fd from dbus : %d", fd);
}
-
g_dbus_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)listener_event_callback, g_conn_listener, NULL, NULL);
if (NULL == g_dbus_fd_handler) {
return VCD_ERROR_OPERATION_FAILED;
}
+ /* add a rule for getting signal */
+ char rule[128];
+ snprintf(rule, 128, "type='signal',interface='%s'", VC_SERVER_SERVICE_INTERFACE);
+
+ /* add a rule for which messages we want to see */
+ dbus_bus_add_match(g_conn_listener, rule, &err);/* see signals from the given interface */
+
+ if (dbus_error_is_set(&err)) {
+ SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] dbus_bus_add_match() : %s", err.message);
+ dbus_error_free(&err);
+ __vcd_dbus_connection_free();
+ return VCD_ERROR_OPERATION_FAILED;
+ }
+
+ SLOG(LOG_INFO, TAG_VCD, "[INFO] Success to open dbus connection");
+
return 0;
}
filtered_count = 1;
top_priority = temp_cmd->priority;
}
-
- vc_cmd_destroy((vc_cmd_h)temp_cmd);
- temp_cmd = NULL;
}
+ vc_cmd_destroy((vc_cmd_h)temp_cmd);
+ temp_cmd = NULL;
}
// ASR consume
/* Initialize manager info */
vcd_client_manager_unset();
+ /* Open dbus connection */
+ if (0 != vcd_dbus_open_connection()) {
+ SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to open connection");
+ return VCD_ERROR_OPERATION_FAILED;
+ }
+
vcd_config_set_service_state(VCD_STATE_READY);
// vcdc_send_service_state(VCD_STATE_READY);
return VCE_ERROR_OPERATION_FAILED;
}
- if (0 != vcd_dbus_open_connection()) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to open connection");
- ecore_shutdown();
- return VCE_ERROR_OPERATION_FAILED;
- }
+ // if (0 != vcd_dbus_open_connection()) {
+ // SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to open connection");
+ // ecore_shutdown();
+ // return VCE_ERROR_OPERATION_FAILED;
+ // }
ret = vcd_initialize(callback);
if (0 != ret) {