The eldbus_shutdown could call abort if an eldbus connection remains.
The elementary creates an eldbus connection internally, so this connection
could remain when the eldbus_shutdown is called without eldbus_init on
application side.
The following is eldbus usage.
1. eldbus_init
2. eldbus_connection_get
3. eldbus_connection_unref /* free eldbus connection */
4. eldbus_shutdown
So this patch set does not call eldbus_shutdown, if eldbus is not initiated.
Change-Id: Icc9a608d620caf0fbc4cd714b9d26b96561023d9
init_done_cb init_done_callback;
void *init_done_callback_data;
+ Eina_Bool is_init;
};
typedef struct _UniversalSwitchEldbus UniversalSwitchEldbus;
eldbus->proxy = NULL;
eldbus->capture_switch_request = NULL;
- eldbus_init();
+ eldbus->is_init = eldbus_init();
+ if (!eldbus->is_init) {
+ SETTING_TRACE_ERROR("DBus initialization failed");
+ return EINA_FALSE;
+ }
+
if (!(eldbus->conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION))) {
SETTING_TRACE_ERROR("Connection to session bus failed");
return EINA_FALSE;
{
UniversalSwitchEldbus *eldbus = &config->eldbus;
+ if (!eldbus->is_init)
+ return;
+
if (eldbus->conn)
eldbus_name_owner_changed_callback_del(eldbus->conn, BUS, __bus_name_acquired, config);