Change bus name with enable/disable method
authorJiwan Kim <ji-wan.kim@samsung.com>
Thu, 16 Feb 2017 04:19:03 +0000 (13:19 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:07:20 +0000 (18:07 +0900)
- Currently, zb_create() registers dbus signal
  but it makes daemon activated.
- Change only 'enable' method can execute daemon.

Change-Id: I23cd597407fc04141ab17b34ce575e041f08a84b
Signed-off-by: Jiwan Kim <ji-wan.kim@samsung.com>
lib/zbl-dbus.c
test/main.c

index 4baa43b29599d4bd616352a27e43bb59f9423cf2..bf9e72f6fbe09ee2b403b1c2b74e127fbaf6bdc4 100644 (file)
@@ -35,7 +35,6 @@
 static int zbl_ref_count;
 
 static GDBusConnection *gdbus_conn = NULL;
-static GDBusProxy *manager_gproxy = NULL;
 static GDBusProxy *service_gproxy = NULL;
 static GDBusProxy *on_off_gproxy = NULL;
 static GDBusProxy *door_lock_gproxy = NULL;
@@ -139,21 +138,6 @@ typedef struct {
 #define ZCL_REPORTING_DIRECTION_REPORTED 0x00
 #define ZCL_REPORTING_DIRECTION_RECEIVED 0x01
 
-static GDBusProxy *_zbl_get_manager_proxy(void)
-{
-       GDBusProxy *proxy = NULL;
-       RETVM_IF(NULL == gdbus_conn, NULL, "Connection Object is invalid");
-
-       if (NULL == manager_gproxy) {
-               proxy = g_dbus_proxy_new_sync(gdbus_conn, G_DBUS_PROXY_FLAGS_NONE, NULL,
-                       ZIGBEE_SERVER_NAME, ZIGBEE_DBUS_OBJPATH, ZIGBEE_MANAGER_INTERFACE,
-                       NULL, NULL);
-       } else
-               proxy = manager_gproxy;
-
-       return proxy;
-}
-
 static GDBusProxy *_zbl_get_service_proxy(void)
 {
        GDBusProxy *proxy = NULL;
@@ -2981,7 +2965,6 @@ int zbl_enable(zigbee_h handle, zb_enable_cb cb, void *user_data)
        zbl_req_cb_s *container;
 
        RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
-       RETV_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR);
        RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
 
        DBG("zbl_enable()");
@@ -2989,7 +2972,7 @@ int zbl_enable(zigbee_h handle, zb_enable_cb cb, void *user_data)
        container = calloc(1, sizeof(zbl_req_cb_s));
        RETVM_IF(NULL == container, ZIGBEE_ERROR_OUT_OF_MEMORY, "calloc() Fail(%d)", errno);
 
-       to = zbl_dbus_get_timeout(manager_gproxy);
+       to = ZIGBEE_BROADCAST_TIMEOUT;
        sub_id = g_dbus_connection_signal_subscribe(gdbus_conn, NULL,
                        ZIGBEE_MANAGER_INTERFACE, "zigbee_state", ZIGBEE_DBUS_OBJPATH,
                        NULL, G_DBUS_SIGNAL_FLAGS_NONE,
@@ -3006,9 +2989,15 @@ int zbl_enable(zigbee_h handle, zb_enable_cb cb, void *user_data)
        container->tid = g_timeout_add_seconds(to, _zbl_timeout_enable, container);
        container->userdata = user_data;
 
-       g_dbus_proxy_call(manager_gproxy, "enable", NULL,
-               G_DBUS_CALL_FLAGS_NONE, to,
-               NULL, NULL, container);
+       g_dbus_connection_call(gdbus_conn,
+               ZIGBEE_MANAGER_INTERFACE,
+               ZIGBEE_DBUS_OBJPATH,
+               ZIGBEE_MANAGER_INTERFACE,
+               "enable",
+               NULL, NULL,
+               G_DBUS_CALL_FLAGS_NONE,
+               to, NULL,
+               NULL, NULL);
 
        return ZIGBEE_ERROR_NONE;
 }
@@ -3020,12 +3009,17 @@ int zbl_disable(void)
        GError *dbus_err = NULL;
 
        RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
-       RETV_IF(NULL == manager_gproxy, ZIGBEE_ERROR_IO_ERROR);
 
        DBG("zbl_disable()");
 
-       variant = g_dbus_proxy_call_sync(manager_gproxy, "disable", NULL,
-               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
+       variant = g_dbus_connection_call_sync(gdbus_conn,
+               ZIGBEE_SERVER_NAME,
+               ZIGBEE_DBUS_OBJPATH,
+               ZIGBEE_MANAGER_INTERFACE,
+               "disable",
+               NULL, NULL,
+               G_DBUS_CALL_FLAGS_NONE,
+               -1, NULL, &dbus_err);
 
        if (!variant) {
                ERR("Failed to get 'disable' [%s]", dbus_err->message);
@@ -7779,10 +7773,6 @@ int zbl_dbus_start(zigbee_h handle)
        _zbl_dbus_subscribe_signal(handle);
 
        /* Phase 2. Make proxies */
-       manager_gproxy = _zbl_get_manager_proxy();
-       RETVM_IF(NULL == manager_gproxy, ZIGBEE_ERROR_IO_ERROR, "Couldn't get manager_gproxy");
-       g_dbus_proxy_set_default_timeout(G_DBUS_PROXY(manager_gproxy), ZIGBEE_BROADCAST_TIMEOUT);
-
        service_gproxy = _zbl_get_service_proxy();
        RETVM_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR, "Couldn't get service_gproxy");
        g_dbus_proxy_set_default_timeout(G_DBUS_PROXY(service_gproxy), ZIGBEE_BROADCAST_TIMEOUT);
@@ -7883,8 +7873,6 @@ void zbl_dbus_stop(zigbee_h handle)
                _zbl_dbus_unsubscribe_signal(handle->dbus_sub_ids);
                handle->dbus_sub_ids = NULL;
 
-               g_object_unref(manager_gproxy);
-               manager_gproxy = NULL;
                g_object_unref(service_gproxy);
                service_gproxy = NULL;
                g_object_unref(on_off_gproxy);
index 09e652a78b3f862c6a4ddc61682f8da740ba6042..4ab5503e2ba91de5430f39e7bef4809431a173ad 100644 (file)
@@ -491,24 +491,25 @@ static int run_destroy(MManager *mm, struct menu_data *menu)
 
 static int run_enable(MManager *mm, struct menu_data *menu)
 {
-       /* Register event callback */
        int ret = ZIGBEE_ERROR_NONE;
 
-       ret = zb_enable(handle, zigbee_enable_cb, NULL);
+       /* Set event callback */
+       ret = zb_set_event_cb(handle, zigbee_event_cb);
        if (ZIGBEE_ERROR_NONE != ret) {
-               msg("zb_enable(0x%X) - FAILED!!!", ret);
+               msg("zb_set_event_cb(0x%X) - FAILED!!!", ret);
                return RET_FAILURE;
        }
 
-       msg(" - zb_enable() ret: [0x%X]", ret);
+       msg(" - zb_set_event_cb() ret: [0x%X]", ret);
 
-       ret = zb_set_event_cb(handle, zigbee_event_cb);
+       /* Enable */
+       ret = zb_enable(handle, zigbee_enable_cb, NULL);
        if (ZIGBEE_ERROR_NONE != ret) {
-               msg("zb_set_event_cb(0x%X) - FAILED!!!", ret);
+               msg("zb_enable(0x%X) - FAILED!!!", ret);
                return RET_FAILURE;
        }
 
-       msg(" - zb_set_event_cb() ret: [0x%X]", ret);
+       msg(" - zb_enable() ret: [0x%X]", ret);
 
        return RET_SUCCESS;
 }
@@ -983,21 +984,23 @@ static int __select_handle_register_event(MManager *mm, struct menu_data *menu)
                msg("zb_create(%d) - SUCCESS!!!. handle [%p]", ret, handle);
        }
 
-       ret = zb_enable(handle, zigbee_enable_cb, NULL);
+       /* Set event callback */
+       ret = zb_set_event_cb(handle, zigbee_event_cb);
        if (ZIGBEE_ERROR_NONE != ret) {
-               msg("zb_enable(0x%X) - FAILED!!!", ret);
+               msg("zb_set_event_cb(0x%X) - FAILED!!!", ret);
                return RET_FAILURE;
        }
 
-       msg(" - zb_enable() ret: [0x%X]", ret);
+       msg(" - zb_set_event_cb() ret: [0x%X]", ret);
 
-       ret = zb_set_event_cb(handle, zigbee_event_cb);
+       /* Enable */
+       ret = zb_enable(handle, zigbee_enable_cb, NULL);
        if (ZIGBEE_ERROR_NONE != ret) {
-               msg("zb_set_event_cb(0x%X) - FAILED!!!", ret);
+               msg("zb_enable(0x%X) - FAILED!!!", ret);
                return RET_FAILURE;
        }
 
-       msg(" - zb_set_event_cb() ret: [0x%X]", ret);
+       msg(" - zb_enable() ret: [0x%X]", ret);
 
        menu_manager_set_user_data(mm, handle);