Change parameters when creating GVariant
authorsaerome kim <saerome.kim@samsung.com>
Thu, 2 Feb 2017 13:27:53 +0000 (22:27 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:07:20 +0000 (18:07 +0900)
- change parameters from 'ay' to 'a(y)'

Change-Id: Ia68ad34f5a6db72b5af6cd7a095e763d7e5e46c0
Signed-off-by: saerome kim <saerome.kim@samsung.com>
lib/zbl-dbus.c

index b12bd94ee330d57cb58b69cb9c3f7b991eadc75a..301a2a93c45e50f6aa913f8e1746ffdf9c5c7253 100644 (file)
@@ -2571,14 +2571,12 @@ GLOBAL_READ_CONFIGURE_REPORTING_REQ_OUT:
        break;
        /* ZCL Doorlock */
        case ZBL_ZCL_DOORLOCK_LOCK_STATE: {
-               zb_form_network_cb cb = container->cb;
-               cb(0x0000, container->userdata);
+               ERR("Unhandled cid = %d", container->cid);
        }
        break;
        /* ZCL Fanmode */
        case ZBL_ZCL_FANMODE_FAN_MODE_STATE: {
-               zb_form_network_cb cb = container->cb;
-               cb(0x0000, container->userdata);
+               ERR("Unhandled cid = %d", container->cid);
        }
        break;
        /* ZCL Group */
@@ -2710,8 +2708,7 @@ GROUP_VIEW_GROUP_REQ_OUT:
        break;
        /* ZCL On/Off */
        case ZBL_ZCL_ON_OFF_GET_ON_OFF_STATE: {
-               zb_form_network_cb cb = container->cb;
-               cb(0x0000, container->userdata);
+               ERR("Unhandled cid = %d", container->cid);
        }
        break;
        /* ZCL Pollcontrol */
@@ -2881,8 +2878,7 @@ SCENE_GET_SCENE_MEMBERSHIP_REQ_OUT:
        break;
        /* ZCL Thermostat */
        case ZBL_ZCL_THERMOSTAT_GET_LOCAL_TEMP: {
-               zb_form_network_cb cb = container->cb;
-               cb(0x0000, container->userdata);
+               ERR("Unhandled cid = %d", container->cid);
        }
        break;
        default:
@@ -5538,7 +5534,7 @@ int zbl_discover_cmds_recv(zigbee_h handle, nwk_addr addr16, unsigned char src_e
 
        variant = g_dbus_proxy_call_sync(zcl_global_proxy, "discover_commands_received",
                g_variant_new("(qyyqqy)", addr16, dst_ep, zcl_frame_ctl, cluster_id,
-               start_command_id, max_command_ids), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
+               start_command_id, max_command_ids), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
        if (variant) {
                g_variant_get(variant, "(i)", &result);
                DBG("ret = [0x%x]", result);
@@ -6112,6 +6108,10 @@ int zbl_identify_query(nwk_addr addr16, unsigned char dst_ep,
 int zbl_add_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                const char *group_name, zb_zcl_group_add_group_rsp cb, void *user_data)
 {
+       int result = ZIGBEE_ERROR_NONE;
+       GVariant *variant = NULL;
+       GError *dbus_err = NULL;
+
        int sub_id, to;
        zbl_req_cb_s *container;
 
@@ -6144,25 +6144,37 @@ int zbl_add_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
        container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
        container->userdata = user_data;
 
-
-       groupname_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       groupname_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
        while (group_name[j] != '\0') {
-               g_variant_builder_add(groupname_builder, "y", group_name[j]);
+               g_variant_builder_add(groupname_builder, "(y)", (group_name[j]));
                j++;
        }
        groupname_variant = g_variant_builder_end(groupname_builder);
        g_variant_builder_unref(groupname_builder);
 
-       g_dbus_proxy_call(zcl_group_proxy, "add_group",
-               g_variant_new("(qyq@ay)", addr16, ep, group_id, groupname_variant),
-               G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+       variant = g_dbus_proxy_call_sync(zcl_group_proxy, "add_group",
+               g_variant_new("(qyq@a(y))", addr16, ep, group_id, groupname_variant),
+               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
+       if (variant) {
+               g_variant_get(variant, "(i)", &result);
+               DBG("ret = [0x%x]", result);
+               g_variant_unref(variant);
+       } else {
+               ERR("Failed to get identify [%s]", dbus_err->message);
+               g_error_free(dbus_err);
+               return ZIGBEE_ERROR_IO_ERROR;
+       }
 
-       return ZIGBEE_ERROR_NONE;
+       return result;
 }
 
 int zbl_view_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                zb_zcl_group_view_group_rsp cb, void *user_data)
 {
+       int result = ZIGBEE_ERROR_NONE;
+       GVariant *variant = NULL;
+       GError *dbus_err = NULL;
+
        int sub_id, to;
        zbl_req_cb_s *container;
 
@@ -6191,17 +6203,30 @@ int zbl_view_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
        container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
        container->userdata = user_data;
 
-       g_dbus_proxy_call(zcl_group_proxy, "view_group",
+       variant = g_dbus_proxy_call_sync(zcl_group_proxy, "view_group",
                g_variant_new("(qyq)", addr16, ep, group_id),
-               G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
+       if (variant) {
+               g_variant_get(variant, "(i)", &result);
+               DBG("ret = [0x%x]", result);
+               g_variant_unref(variant);
+       } else {
+               ERR("Failed to get identify [%s]", dbus_err->message);
+               g_error_free(dbus_err);
+               return ZIGBEE_ERROR_IO_ERROR;
+       }
 
-       return ZIGBEE_ERROR_NONE;
+       return result;
 }
 
 int zbl_group_get_group_membership(nwk_addr addr16, unsigned char ep,
                unsigned char group_count, unsigned short *group_list,
                zb_zcl_group_get_group_membership_rsp cb, void *user_data)
 {
+       int result = ZIGBEE_ERROR_NONE;
+       GVariant *variant = NULL;
+       GError *dbus_err = NULL;
+
        int sub_id, to;
        zbl_req_cb_s *container;
 
@@ -6243,16 +6268,29 @@ int zbl_group_get_group_membership(nwk_addr addr16, unsigned char ep,
        grouplist_variant = g_variant_builder_end(grouplist_builder);
        g_variant_builder_unref(grouplist_builder);
 
-       g_dbus_proxy_call(zcl_group_proxy, "get_group_membership",
+       variant = g_dbus_proxy_call_sync(zcl_group_proxy, "get_group_membership",
                g_variant_new("(qyy@aq)", addr16, ep, group_count,      grouplist_variant),
-               G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+               G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
+       if (variant) {
+               g_variant_get(variant, "(i)", &result);
+               DBG("ret = [0x%x]", result);
+               g_variant_unref(variant);
+       } else {
+               ERR("Failed to get identify [%s]", dbus_err->message);
+               g_error_free(dbus_err);
+               return ZIGBEE_ERROR_IO_ERROR;
+       }
 
-       return ZIGBEE_ERROR_NONE;
+       return result;
 }
 
 int zbl_remove_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                zb_zcl_group_remove_group_rsp cb, void *user_data)
 {
+       int result = ZIGBEE_ERROR_NONE;
+       GVariant *variant = NULL;
+       GError *dbus_err = NULL;
+
        int sub_id, to;
        zbl_req_cb_s *container;
 
@@ -6281,10 +6319,19 @@ int zbl_remove_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
        container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
        container->userdata = user_data;
 
-       g_dbus_proxy_call(zcl_group_proxy, "remove_group", g_variant_new("(qyq)",
-               addr16, ep, group_id), G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+       variant = g_dbus_proxy_call_sync(zcl_group_proxy, "remove_group", g_variant_new("(qyq)",
+               addr16, ep, group_id), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
+       if (variant) {
+               g_variant_get(variant, "(i)", &result);
+               DBG("ret = [0x%x]", result);
+               g_variant_unref(variant);
+       } else {
+               ERR("Failed to get add_group_if_identifying [%s]", dbus_err->message);
+               g_error_free(dbus_err);
+               return ZIGBEE_ERROR_IO_ERROR;
+       }
 
-       return ZIGBEE_ERROR_NONE;
+       return result;
 }
 
 int zbl_remove_all_group(nwk_addr addr16, unsigned char ep)
@@ -6327,16 +6374,16 @@ int zbl_add_group_if_identifying(nwk_addr addr16, unsigned char ep,
        RETV_IF(NULL == gdbus_conn, ZIGBEE_ERROR_IO_ERROR);
        RETV_IF(NULL == zcl_group_proxy, ZIGBEE_ERROR_IO_ERROR);
 
-       groupname_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+       groupname_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
        while (group_name[j] != '\0') {
-               g_variant_builder_add(groupname_builder, "y", group_name[j]);
+               g_variant_builder_add(groupname_builder, "(y)", group_name[j]);
                j++;
        }
        groupname_variant = g_variant_builder_end(groupname_builder);
        g_variant_builder_unref(groupname_builder);
 
        variant = g_dbus_proxy_call_sync(zcl_group_proxy, "add_group_if_identifying",
-               g_variant_new("(qyq@ay)", addr16, ep, group_id, groupname_variant),
+               g_variant_new("(qyq@a(y))", addr16, ep, group_id, groupname_variant),
                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
        if (variant) {
                g_variant_get(variant, "(i)", &result);