From f3ab52b0ed845dc2e826aa091b79004151a7e6f3 Mon Sep 17 00:00:00 2001 From: saerome kim Date: Fri, 17 Feb 2017 11:07:05 +0900 Subject: [PATCH 1/1] Add getting ownwership of 'org.tizen.zigbee.manager' for D-Bus activation Change-Id: Iaad9e82dfaf21168a1b5651af8d219f5f5150295 Signed-off-by: saerome kim --- .../src/zigbee_service_dbus_interface.c | 28 ++++++++++++++++++++++ .../src/zigbee_service_interface_common.h | 1 + 2 files changed, 29 insertions(+) diff --git a/zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface.c b/zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface.c index 5d790dd..3f729d5 100644 --- a/zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface.c +++ b/zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface.c @@ -442,6 +442,20 @@ OUT: g_free(path); } +static void zigbee_get_activation_sbus(ZigbeeCustomData_t *interface_data) +{ + /* Get D-Bus owner to activate zigbee-daemon */ + interface_data->activation_dbus_id = g_bus_own_name(G_BUS_TYPE_SYSTEM, + ZIGBEE_DBUS_SERVICE".manager", + G_BUS_NAME_OWNER_FLAGS_REPLACE, + NULL, + NULL, + NULL, + NULL, + NULL); + Z_LOGI("ZigBee D-BUS activation ID: [%d]", interface_data->activation_dbus_id); +} + /**< Zigbee service dbus interface initialization */ gboolean zigbee_service_dbus_interface_init(ZigBeeService *service) { @@ -508,6 +522,11 @@ gboolean zigbee_service_dbus_interface_init(ZigBeeService *service) g_free, NULL); /* + * Acquire "org.tizen.zigbee.manager" named bus on D-BUS SYSTEM bus. + */ + zigbee_get_activation_sbus(interface_data); + + /* * Acquire "org.tizen.zigbee" named bus on D-BUS SYSTEM bus. */ interface_data->bus_id = g_bus_own_name(G_BUS_TYPE_SYSTEM, @@ -573,6 +592,15 @@ void zigbee_service_dbus_interface_deinit(ZigBeeService *service) } /* + * Unown "org.tizen.zigbee.manager" named bus on D-BUS SYSTEM bus + */ + if (interface_data->activation_dbus_id > 0) { + Z_LOGI("Unowning ZigBee Service interface activation D-BUS ID: [%d]", + interface_data->activation_dbus_id); + g_bus_unown_name(interface_data->activation_dbus_id); + } + + /* * Unown "org.tizen.zigbee" named bus on D-BUS SYSTEM bus */ if (interface_data->bus_id > 0) { diff --git a/zigbee-daemon/zigbee-interface/src/zigbee_service_interface_common.h b/zigbee-daemon/zigbee-interface/src/zigbee_service_interface_common.h index 57f4241..70c9272 100644 --- a/zigbee-daemon/zigbee-interface/src/zigbee_service_interface_common.h +++ b/zigbee-daemon/zigbee-interface/src/zigbee_service_interface_common.h @@ -74,6 +74,7 @@ typedef struct { GHashTable *objects; /**< ZigBee D-BUS object(s) */ gint bus_id; /**< ZigBee D-BUS ID */ + gint activation_dbus_id; /**< Activation D-BUS ID */ gboolean name_acquired; /**< ZigBee D-BUS name acquired */ gboolean sevice_interface_init_complete; /**< ZigBee D-BUS service init completed */ -- 2.7.4