Fix for service methods
authorJiwan Kim <ji-wan.kim@samsung.com>
Tue, 31 Jan 2017 10:55:17 +0000 (19:55 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:07:19 +0000 (18:07 +0900)
Change-Id: Ie246241aa7ffbb71731d8b01d6158125bc164cf0
Signed-off-by: Jiwan Kim <ji-wan.kim@samsung.com>
lib/zbl-dbus.c
test/main.c

index 6c61cf6..3125cf7 100644 (file)
@@ -593,8 +593,8 @@ static void _zbl_signal_handler(GDBusConnection *connection,
                GVariantIter *iter1 = NULL;
                GVariantIter *iter2 = NULL;
 
-               g_variant_get(parameters, "(ayyayq)", &iter1, &count, &iter2, &addr16);
-               while (g_variant_iter_loop(iter1, "y", &value)) {
+               g_variant_get(parameters, "(a(y)ya(y)q)", &iter1, &count, &iter2, &addr16);
+               while (g_variant_iter_loop(iter1, "(y)", &value)) {
                        addr64[j] = value;
                        j++;
                }
@@ -602,7 +602,7 @@ static void _zbl_signal_handler(GDBusConnection *connection,
                        g_variant_iter_free(iter1);
 
                j = 0;
-               while (g_variant_iter_loop(iter2, "y", &value)) {
+               while (g_variant_iter_loop(iter2, "(y)", &value)) {
                        ep[j] = value;
                        j++;
                }
@@ -938,7 +938,7 @@ static int _zbl_dbus_subscribe_signal(zigbee_h handle)
 
        /* Section 1. Subscribe ZDO signal */
        id = g_dbus_connection_signal_subscribe(gdbus_conn, NULL, ZIGBEE_SERVICE_INTERFACE,
-                                               "service_enabled", ZIGBEE_SERVICE_OBJECT_PATH, NULL,
+                                               "service_enabled", ZIGBEE_CONTROL_OBJECT_PATH, NULL,
                                                G_DBUS_CALL_FLAGS_NONE, _zbl_signal_handler, handle, NULL);
        if (0 == id) {
                ERR("g_dbus_connection_signal_subscribe(service_enabled) Fail(%d)", errno);
@@ -948,7 +948,7 @@ static int _zbl_dbus_subscribe_signal(zigbee_h handle)
        DBG("subscribed for service_enabled signal %d", id);
 
        id = g_dbus_connection_signal_subscribe(gdbus_conn, NULL, ZIGBEE_SERVICE_INTERFACE,
-                                               "child_joined", ZIGBEE_SERVICE_OBJECT_PATH, NULL,
+                                               "child_joined", ZIGBEE_CONTROL_OBJECT_PATH, NULL,
                                                G_DBUS_CALL_FLAGS_NONE, _zbl_signal_handler, handle, NULL);
        if (0 == id) {
                ERR("g_dbus_connection_signal_subscribe(child_rejoined) Fail(%d)\n", errno);
@@ -959,7 +959,7 @@ static int _zbl_dbus_subscribe_signal(zigbee_h handle)
        DBG("subscribed for child_joined signal %d", id);
 
        id = g_dbus_connection_signal_subscribe(gdbus_conn, NULL, ZIGBEE_SERVICE_INTERFACE,
-                                               "child_rejoined", ZIGBEE_SERVICE_OBJECT_PATH, NULL,
+                                               "child_rejoined", ZIGBEE_CONTROL_OBJECT_PATH, NULL,
                                                G_DBUS_CALL_FLAGS_NONE, _zbl_signal_handler, handle, NULL);
        if (0 == id) {
                ERR("g_dbus_connection_signal_subscribe(child_rejoined) Fail(%d)\n", errno);
@@ -970,7 +970,7 @@ static int _zbl_dbus_subscribe_signal(zigbee_h handle)
        DBG("subscribed for child_rejoined signal %d", id);
 
        id = g_dbus_connection_signal_subscribe(gdbus_conn, NULL, ZIGBEE_SERVICE_INTERFACE,
-                                               "child_left", ZIGBEE_SERVICE_OBJECT_PATH, NULL,
+                                               "child_left", ZIGBEE_CONTROL_OBJECT_PATH, NULL,
                                                G_DBUS_CALL_FLAGS_NONE, _zbl_signal_handler, handle, NULL);
        if (0 == id) {
                ERR("g_dbus_connection_signal_subscribe(child_left) Fail(%d)\n", errno);
@@ -981,7 +981,7 @@ static int _zbl_dbus_subscribe_signal(zigbee_h handle)
        DBG("subscribed for child_left signal %d", id);
 
        id = g_dbus_connection_signal_subscribe(gdbus_conn, NULL, ZIGBEE_SERVICE_INTERFACE,
-                                               "leave_network_done", ZIGBEE_SERVICE_OBJECT_PATH, NULL,
+                                               "leave_network_done", ZIGBEE_CONTROL_OBJECT_PATH, NULL,
                                                G_DBUS_CALL_FLAGS_NONE, _zbl_signal_handler, handle, NULL);
        if (0 == id) {
                ERR("g_dbus_connection_signal_subscribe(leave_network_done) Fail(%d)\n", errno);
@@ -992,7 +992,7 @@ static int _zbl_dbus_subscribe_signal(zigbee_h handle)
        DBG("subscribed for leave_network_done signal %d", id);
 
        id = g_dbus_connection_signal_subscribe(gdbus_conn, NULL, ZIGBEE_SERVICE_INTERFACE,
-                                               "form_network_done", ZIGBEE_SERVICE_OBJECT_PATH, NULL,
+                                               "form_network_done", ZIGBEE_CONTROL_OBJECT_PATH, NULL,
                                                G_DBUS_CALL_FLAGS_NONE, _zbl_signal_handler, handle, NULL);
        if (0 == id) {
                ERR("g_dbus_connection_signal_subscribe(form_network_done) Fail(%d)\n", errno);
@@ -3122,6 +3122,7 @@ int zbl_get_cluster_list(ieee_addr eui64, unsigned char endpoint, unsigned short
        GError *dbus_err = NULL;
        unsigned short cluster;
        int i = 0;
+       int result = 0;
 
        RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
        RETV_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR);
@@ -3143,7 +3144,9 @@ int zbl_get_cluster_list(ieee_addr eui64, unsigned char endpoint, unsigned short
                                -1, NULL, &dbus_err);
 
        if (variant) {
-               g_variant_get(variant, "(aq)", &iter);
+               g_variant_get(variant, "(iaq)", &result, &iter);
+               DBG("ret = [0x%x]", result);
+
                while (g_variant_iter_loop(iter, "q", &cluster)) {
                        DBG("Cluster 0x%04X", cluster);
                        list[i++] = cluster;
@@ -3173,6 +3176,7 @@ int zbl_get_endpoint_list(ieee_addr eui64, unsigned char list[], unsigned char *
        GError *dbus_err = NULL;
        unsigned char endpoint;
        int i = 0;
+       int result = ZIGBEE_ERROR_NONE;
 
        RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
        RETV_IF(NULL == service_gproxy, ZIGBEE_ERROR_IO_ERROR);
@@ -3190,10 +3194,13 @@ int zbl_get_endpoint_list(ieee_addr eui64, unsigned char list[], unsigned char *
        g_variant_builder_unref(mac_builder);
 
        variant = g_dbus_proxy_call_sync(service_gproxy, "get_endpoint_list",
-                               g_variant_new("(@ay)", mac_variant), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
+               g_variant_new("(@ay)", mac_variant),
+               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (variant) {
-               g_variant_get(variant, "(ay)", &iter);
+               g_variant_get(variant, "(iay)", &result, &iter);
+               DBG("ret = [0x%x]", result);
+
                while (g_variant_iter_loop(iter, "y", &endpoint)) {
                        DBG("Endpoint 0x%X", endpoint);
                        list[i++] = endpoint;
@@ -3244,7 +3251,8 @@ int zbl_api_get_node_type(ieee_addr eui64, unsigned char *node_type)
        g_variant_builder_unref(mac_builder);
 
        variant = g_dbus_proxy_call_sync(service_gproxy, "get_node_type",
-                               g_variant_new("(@ay)", mac_variant), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
+               g_variant_new("(@ay)", mac_variant),
+               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (variant) {
                g_variant_get(variant, "(y)", &n_type);
@@ -3272,6 +3280,7 @@ int zbl_get_all_device_info(zb_end_device_info_h **dev_list, unsigned char* num)
        GVariantIter *mac_iter = NULL;
        GVariantIter *endpoint_iter = NULL;
        GError *dbus_err = NULL;
+       int result = 0;
        unsigned short node_id;
        unsigned char node_type;
        unsigned char node_mac_address[8] = {0x00};
@@ -3287,7 +3296,8 @@ int zbl_get_all_device_info(zb_end_device_info_h **dev_list, unsigned char* num)
                                NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (variant) {
-               g_variant_get(variant, "(a(qyayyay))", &iter);
+               g_variant_get(variant, "(ia(qyayyay))", &result, &iter);
+               DBG("ret = [0x%x]", result);
 
                list = calloc(MAX_DEVICE_LIST+1, sizeof(zb_end_device_info_h));
                RETV_IF(NULL == list, ZIGBEE_ERROR_OUT_OF_MEMORY);
index 3a4b147..31add93 100644 (file)
@@ -882,7 +882,7 @@ static int __select_handle_register_event(MManager *mm, struct menu_data *menu)
 {
        int ret = -1;
 
-       if (NULL == handle) {
+       if (NULL != handle) {
                zb_destroy(handle);
                handle = NULL;
        }
@@ -899,7 +899,7 @@ 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_event_cb);
+       ret = zb_enable(handle, zigbee_event_cb);
        if (ZIGBEE_ERROR_NONE != ret) {
                msg("zb_enable(%d) - FAILED!!!.", ret);
                return RET_FAILURE;