Change 'enable' method to async operation
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-lib / src / zblib_request.c
index 9dd8e7d..b3c314f 100644 (file)
@@ -126,7 +126,7 @@ static ZigBeeRequest *__zblib_request_ref_request_by_request_id(ZigBeeService *s
 
        /* Look-up requets_id in request hash table */
        request = (ZigBeeRequest *)g_hash_table_lookup(request_table, (gconstpointer)request_id);
-       if (NULL == request_table) {
+       if (NULL == request) {
                Z_LOGE("No request available for request_id: [%d]", request_id);
                return NULL;
        }
@@ -1137,16 +1137,6 @@ static gpointer __zblib_request_create_service_request_data(guint request_type,
        /* Fetch ops ID */
        ops_id = __zblib_request_get_ops_id(request_type);
        switch (ops_id) {
-       case ZBLIB_SERVICE_OPS_ENABLE: {
-               service_request_data = NULL;
-       }
-       break;
-
-       case ZBLIB_SERVICE_OPS_DISABLE: {
-               service_request_data = NULL;
-       }
-       break;
-
        case ZBLIB_SERVICE_OPS_ZB_HW_RESET: {
                service_request_data = NULL;
        }
@@ -1484,12 +1474,16 @@ static gpointer __zblib_request_create_zcl_global_control_request_data(guint req
 
                in_req = (ZigbeeZclGlobalControlReadAttributesRequest_t *)request_data;
                if (NULL != in_req) {
+                       guint i;
                        /* Allocate memory */
                        req = (ZigbeeZclGlobalControlReadAttributesRequest_t *)
                                g_malloc0(sizeof(ZigbeeZclGlobalControlReadAttributesRequest_t));
 
                        /* Copy data */
-                       req->attribute_id = g_memdup(in_req->attribute_id, in_req->attribute_id_len);
+                       for (i = 0; i < (in_req->attribute_id_len * sizeof(short)); i++)
+                               Z_LOGE("in_req->attribute_id[%d] = 0x%X", i, in_req->attribute_id[i]);
+                       req->attribute_id = g_memdup(in_req->attribute_id,
+                               in_req->attribute_id_len * sizeof(short));
                        req->attribute_id_len = in_req->attribute_id_len;
                        req->node_id = in_req->node_id;
                        req->cluster_id = in_req->cluster_id;
@@ -2164,6 +2158,7 @@ static gpointer __zblib_request_create_zcl_group_request_data(guint request_type
                        /* Copy data */
                        req->node_id = in_req->node_id;
                        req->dest_ep = in_req->dest_ep;
+                       req->group_id = in_req->group_id;
                }
 
                zcl_group_request_data = (gpointer)req;
@@ -2184,8 +2179,8 @@ static gpointer __zblib_request_create_zcl_group_request_data(guint request_type
                        req->node_id = in_req->node_id;
                        req->dest_ep = in_req->dest_ep;
                        req->group_count = in_req->group_count;
-                       req->group_list = (gshort *)g_memdup(in_req->group_list,
-                               in_req->group_count);
+                       req->group_list = (gushort *)g_memdup(in_req->group_list,
+                               sizeof(gushort) * in_req->group_count);
                }
 
                zcl_group_request_data = (gpointer)req;
@@ -2388,7 +2383,7 @@ static gpointer __zblib_request_create_zcl_scene_request_data(guint request_type
                        g_strlcpy(req->scene_name,
                                in_req->scene_name, ZIGBEE_ZCL_SCENE_NAME_MAX_LEN + 1);
                        req->ext_field_set_len = in_req->ext_field_set_len;
-                       req->ext_field_set = (char *)g_memdup(in_req->ext_field_set,
+                       req->ext_field_set = (guchar *)g_memdup(in_req->ext_field_set,
                                in_req->ext_field_set_len);
                }
 
@@ -2834,15 +2829,15 @@ static gpointer __zblib_request_create_zdo_dev_control_request_data(guint reques
        }
        break;
 
-       case ZBLIB_ZDO_DEV_CONTROL_OPS_NWK_UPDATE_REQ: {
-               ZigbeeZdoDevControlNwkUpdateReq_t *in_req;
-               ZigbeeZdoDevControlNwkUpdateReq_t *req = NULL;
+       case ZBLIB_ZDO_DEV_CONTROL_OPS_MGMT_NWK_UPDATE_REQ: {
+               ZigbeeZdoDevControlMgmtNwkUpdateReq_t *in_req;
+               ZigbeeZdoDevControlMgmtNwkUpdateReq_t *req = NULL;
 
-               in_req = (ZigbeeZdoDevControlNwkUpdateReq_t *)request_data;
+               in_req = (ZigbeeZdoDevControlMgmtNwkUpdateReq_t *)request_data;
                if (NULL != in_req) {
                        /* Allocate memory */
-                       req = (ZigbeeZdoDevControlNwkUpdateReq_t *)
-                               g_malloc0(sizeof(ZigbeeZdoDevControlNwkUpdateReq_t));
+                       req = (ZigbeeZdoDevControlMgmtNwkUpdateReq_t *)
+                               g_malloc0(sizeof(ZigbeeZdoDevControlMgmtNwkUpdateReq_t));
 
                        /* Copy data */
                        req->node_id = in_req->node_id;
@@ -2856,15 +2851,15 @@ static gpointer __zblib_request_create_zdo_dev_control_request_data(guint reques
        }
        break;
 
-       case ZBLIB_ZDO_DEV_CONTROL_OPS_NWK_DISC_REQ: {
-               ZigbeeZdoDevControlNwkDiscoveryReq_t *in_req;
-               ZigbeeZdoDevControlNwkDiscoveryReq_t *req = NULL;
+       case ZBLIB_ZDO_DEV_CONTROL_OPS_MGMT_NWK_DISC_REQ: {
+               ZigbeeZdoDevControlMgmtNwkDiscoveryReq_t *in_req;
+               ZigbeeZdoDevControlMgmtNwkDiscoveryReq_t *req = NULL;
 
-               in_req = (ZigbeeZdoDevControlNwkDiscoveryReq_t *)request_data;
+               in_req = (ZigbeeZdoDevControlMgmtNwkDiscoveryReq_t *)request_data;
                if (NULL != in_req) {
                        /* Allocate memory */
-                       req = (ZigbeeZdoDevControlNwkDiscoveryReq_t *)
-                               g_malloc0(sizeof(ZigbeeZdoDevControlNwkDiscoveryReq_t));
+                       req = (ZigbeeZdoDevControlMgmtNwkDiscoveryReq_t *)
+                               g_malloc0(sizeof(ZigbeeZdoDevControlMgmtNwkDiscoveryReq_t));
 
                        /* Copy data */
                        req->node_id = in_req->node_id;
@@ -2908,12 +2903,10 @@ static gpointer __zblib_request_create_zdo_bind_request_data(guint request_type,
 
                        /* Copy data */
                        req->node_id = in_req->node_id;
-                       g_strlcpy(req->src_addr,
-                               in_req->src_addr, ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1);
+                       memcpy(req->src_addr, in_req->src_addr, ZIGBEE_EUI64_SIZE);
                        req->src_ep = in_req->src_ep;
                        req->cluster_id = in_req->cluster_id;
-                       g_strlcpy(req->dst_addr,
-                               in_req->dst_addr, ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1);
+                       memcpy(req->dst_addr, in_req->dst_addr, ZIGBEE_EUI64_SIZE);
                        req->bind_type = in_req->bind_type;
                        req->group_addr = in_req->group_addr;
                        req->dst_ep = in_req->dst_ep;
@@ -2935,12 +2928,10 @@ static gpointer __zblib_request_create_zdo_bind_request_data(guint request_type,
 
                        /* Copy data */
                        req->node_id = in_req->node_id;
-                       g_strlcpy(req->src_addr,
-                               in_req->src_addr, ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1);
+                       memcpy(req->src_addr, in_req->src_addr, ZIGBEE_EUI64_SIZE);
                        req->src_ep = in_req->src_ep;
                        req->cluster_id = in_req->cluster_id;
-                       g_strlcpy(req->dst_addr,
-                               in_req->dst_addr, ZIGBEE_ZDO_BIND_ADDRESS_MAX_LEN + 1);
+                       memcpy(req->dst_addr, in_req->dst_addr, ZIGBEE_EUI64_SIZE);
                        req->bind_type = in_req->bind_type;
                        req->group_addr = in_req->group_addr;
                        req->dst_ep = in_req->dst_ep;
@@ -3614,14 +3605,6 @@ static void __zblib_request_free_service_request_data(ZigBeeRequest *request,
        /* Fetch ops ID */
        ops_id = __zblib_request_get_ops_id(request_type);
        switch (ops_id) {
-       case ZBLIB_SERVICE_OPS_ENABLE: {
-       }
-       break;
-
-       case ZBLIB_SERVICE_OPS_DISABLE: {
-       }
-       break;
-
        case ZBLIB_SERVICE_OPS_ZB_HW_RESET: {
        }
        break;
@@ -4496,20 +4479,20 @@ static void __zblib_request_free_zdo_dev_control_request_data(ZigBeeRequest *req
        }
        break;
 
-       case ZBLIB_ZDO_DEV_CONTROL_OPS_NWK_UPDATE_REQ: {
-               ZigbeeZdoDevControlNwkUpdateReq_t *req = NULL;
+       case ZBLIB_ZDO_DEV_CONTROL_OPS_MGMT_NWK_UPDATE_REQ: {
+               ZigbeeZdoDevControlMgmtNwkUpdateReq_t *req = NULL;
 
-               req = (ZigbeeZdoDevControlNwkUpdateReq_t *)request->request_data;
+               req = (ZigbeeZdoDevControlMgmtNwkUpdateReq_t *)request->request_data;
                if (NULL != req) {
                        g_free(req);
                }
        }
        break;
 
-       case ZBLIB_ZDO_DEV_CONTROL_OPS_NWK_DISC_REQ: {
-               ZigbeeZdoDevControlNwkDiscoveryReq_t *req = NULL;
+       case ZBLIB_ZDO_DEV_CONTROL_OPS_MGMT_NWK_DISC_REQ: {
+               ZigbeeZdoDevControlMgmtNwkDiscoveryReq_t *req = NULL;
 
-               req = (ZigbeeZdoDevControlNwkDiscoveryReq_t *)request->request_data;
+               req = (ZigbeeZdoDevControlMgmtNwkDiscoveryReq_t *)request->request_data;
                if (NULL != req) {
                        g_free(req);
                }