Add getting ownwership of 'org.tizen.zigbee.manager' for D-Bus activation
authorsaerome kim <saerome.kim@samsung.com>
Fri, 17 Feb 2017 02:07:05 +0000 (11:07 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:10:26 +0000 (18:10 +0900)
Change-Id: Iaad9e82dfaf21168a1b5651af8d219f5f5150295
Signed-off-by: saerome kim <saerome.kim@samsung.com>
zigbee-daemon/zigbee-interface/src/zigbee_service_dbus_interface.c
zigbee-daemon/zigbee-interface/src/zigbee_service_interface_common.h

index 5d790dd..3f729d5 100644 (file)
@@ -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) {
index 57f4241..70c9272 100644 (file)
@@ -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 */