int zbl_identify_query(nwk_addr addr16, unsigned char dst_ep,
zb_zcl_identify_query_cb 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;
container->tid = g_timeout_add_seconds(to, _zbl_timeout_cb, container);
container->userdata = user_data;
- g_dbus_proxy_call(zcl_identify_proxy, "query",
- g_variant_new("(qy)", addr16, dst_ep),
- G_DBUS_CALL_FLAGS_NONE, to, NULL, NULL, container);
+ variant = g_dbus_proxy_call_sync(zcl_identify_proxy, "query",
+ g_variant_new("(qy)", addr16, dst_ep), 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_add_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,