gboolean parole_dbus_register_name(const gchar *name) { DBusConnection *bus; DBusError error; int ret; bus = parole_session_bus_get(); dbus_error_init(&error); ret = dbus_bus_request_name(bus, name, DBUS_NAME_FLAG_ALLOW_REPLACEMENT, &error); dbus_connection_unref(bus); if (dbus_error_is_set(&error)) { g_warning("Error: %s\n", error.message); dbus_error_free(&error); return FALSE; } return ret == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER ? TRUE : FALSE; }
gboolean parole_dbus_release_name (const gchar *name) { DBusConnection *bus; DBusError error; int ret; bus = parole_session_bus_get (); dbus_error_init (&error); ret = dbus_bus_release_name (bus, name, &error); dbus_connection_unref (bus); if ( dbus_error_is_set (&error) ) { g_warning ("Error: %s\n", error.message); dbus_error_free (&error); return FALSE; } return ret == -1 ? FALSE : TRUE; }
gboolean parole_dbus_name_has_owner(const gchar *name) { DBusConnection *bus; DBusError error; gboolean ret; bus = parole_session_bus_get(); dbus_error_init(&error); ret = dbus_bus_name_has_owner(bus, name, &error); dbus_connection_unref(bus); if (dbus_error_is_set(&error)) { g_warning("Failed to get name owner: %s\n", error.message); dbus_error_free(&error); } return ret; }