From 18051160ef985c5c0f4ac735bf9a1b7fa5eb1625 Mon Sep 17 00:00:00 2001 From: lokilee73 Date: Wed, 4 Apr 2018 21:31:56 +0900 Subject: [PATCH] Remove dbus_handle_init to solve timimg issue refactor dbus_handle_init to two parts in deviced, storaged and feedbackd. It's to solve timing issue in deviced by AddPoweroffWait method. Change-Id: I32246f4667dc29447037636ae9b8bf02593e36fe Signed-off-by: lokilee73 --- src/libgdbus/dbus-system.c | 53 ++++++++++++---------------------------------- src/libgdbus/dbus-system.h | 3 +-- 2 files changed, 15 insertions(+), 41 deletions(-) mode change 100644 => 100755 src/libgdbus/dbus-system.c mode change 100644 => 100755 src/libgdbus/dbus-system.h diff --git a/src/libgdbus/dbus-system.c b/src/libgdbus/dbus-system.c old mode 100644 new mode 100755 index 22df703..fa377a3 --- a/src/libgdbus/dbus-system.c +++ b/src/libgdbus/dbus-system.c @@ -304,18 +304,25 @@ err: dbus_handle_h dbus_handle_get_connection(GBusType bus_type, gboolean priv) { dbus_handle_s *dh = NULL; + int i; if (bus_type != G_BUS_TYPE_SYSTEM && bus_type != G_BUS_TYPE_SESSION) { _E("Wrong bus_type %d\n", bus_type); return dh; } - /* private */ - if (priv) - dh = _dbus_handle_get_connection_private(bus_type); - /* shared */ - else - dh = _dbus_handle_get_connection(bus_type); + for (i = 0 ; i < 3; ++i) { + /* private */ + if (priv) + dh = _dbus_handle_get_connection_private(bus_type); + /* shared */ + else + dh = _dbus_handle_get_connection(bus_type); + + if (dh) + break; + usleep(5000); + } return dh; } @@ -2636,7 +2643,7 @@ char **dbus_handle_get_owner_list(dbus_handle_h handle, const char *bus_name) return strv; } -void dbush_handle_check_owner_name(dbus_handle_h handle, const char *owner_name) +void dbus_handle_check_owner_name(dbus_handle_h handle, const char *owner_name) { dcl_dbus_handle(); char exe_name[PATH_MAX]; @@ -2667,35 +2674,3 @@ void dbush_handle_check_owner_name(dbus_handle_h handle, const char *owner_name) g_strfreev(strv); } - -dbus_handle_h dbus_handle_init(GBusType type, - const char* bus_name, - GBusNameAcquiredCallback acquired_handler, - GBusNameLostCallback lost_handler) -{ - dbus_handle_h handle = NULL; - int i, ret = 0; - - if (!bus_name) { - _E("Wrong bus name"); - return NULL; - } - - // todo: do we need retry ? - booting time - for (i = 0 ; i < 3; ++i) { - handle = dbus_handle_get_connection(type, FALSE); - if (handle) - break; - usleep(5000); - } - ret = dbus_handle_request_bus_name(handle, bus_name, acquired_handler, lost_handler); - if (ret <= 0) - goto out; - - dbush_handle_check_owner_name(NULL, bus_name); - - return handle; - -out: - return NULL; -} diff --git a/src/libgdbus/dbus-system.h b/src/libgdbus/dbus-system.h old mode 100644 new mode 100755 index 42f2f8f..126e12a --- a/src/libgdbus/dbus-system.h +++ b/src/libgdbus/dbus-system.h @@ -490,8 +490,7 @@ int dbus_handle_get_sender_pid(dbus_handle_h handle, const char * sender); int dbus_handle_get_sender_credentials(dbus_handle_h handle, const char *name, GDBusCredentials *creds); int dbus_handle_watch_name(const char *name, GBusNameAppearedCallback name_appeared_handler, GBusNameVanishedCallback name_vanished_handler, void *user_data, GDestroyNotify user_data_free_func); void dbus_handle_unwatch_name(guint id); -dbus_handle_h dbus_handle_init(GBusType type, const char* bus_name, GBusNameAcquiredCallback acquired_handler, GBusNameLostCallback lost_handler); char** dbus_handle_get_owner_list(dbus_handle_h handle, const char *bus_name); -void dbush_handle_check_owner_name(dbus_handle_h handle, const char *owner_name); +void dbus_handle_check_owner_name(dbus_handle_h handle, const char *owner_name); #endif -- 2.7.4