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;
}
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];
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;
-}
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