Commit 9e5016f1 authored by 陈伟灿's avatar 陈伟灿

Merge branch 'cwc' into 'master'

【修改内容】修改内存泄漏

See merge request chenweican/k-sdk!209
parents 3df6f3ce cdd1e136
...@@ -758,13 +758,13 @@ static int kk_device_historyalarm_handle(cJSON *payload) ...@@ -758,13 +758,13 @@ static int kk_device_historyalarm_handle(cJSON *payload)
cJSON *productCodeJ = cJSON_GetObjectItem(client_list ,"productCode"); cJSON *productCodeJ = cJSON_GetObjectItem(client_list ,"productCode");
if(productCodeJ == NULL){ if(productCodeJ == NULL){
cJSON_Delete(infoItem); cJSON_Delete(infoItem);
printf("----------------->6\n"); cJSON_Delete(contentObj);
return -1; return -1;
} }
cJSON * itime = cJSON_GetObjectItem(client_list ,"alarm_time"); cJSON * itime = cJSON_GetObjectItem(client_list ,"alarm_time");
if(itime == NULL){ if(itime == NULL){
cJSON_Delete(infoItem); cJSON_Delete(infoItem);
printf("----------------->1212\n"); cJSON_Delete(contentObj);
return -1; return -1;
} }
sprintf(timerStr,"%d",itime->valueint); sprintf(timerStr,"%d",itime->valueint);
......
...@@ -441,6 +441,9 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry) ...@@ -441,6 +441,9 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
int kk_sync_devices_to_sdk(cJSON *root,cJSON *data) int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
{ {
cJSON *rooms = cJSON_GetObjectItem(data,ROOMS_STR); cJSON *rooms = cJSON_GetObjectItem(data,ROOMS_STR);
if(rooms == NULL|| rooms->type != cJSON_Array){
return -1;
}
cJSON *deviceAry = cJSON_CreateArray(); cJSON *deviceAry = cJSON_CreateArray();
int i,num = cJSON_GetArraySize(rooms); int i,num = cJSON_GetArraySize(rooms);
cJSON *roomId,*devices; cJSON *roomId,*devices;
...@@ -653,8 +656,10 @@ int kk_sync_devices_status_to_sdk(cJSON *root) ...@@ -653,8 +656,10 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
kk_map_dev_ctx *ctx = _kk_map_dev_ctx(); kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
kk_map_dev_node_t *n = NULL; kk_map_dev_node_t *n = NULL;
if(root == NULL){
return -1;
}
cJSON *devStatusAry = cJSON_CreateArray(); cJSON *devStatusAry = cJSON_CreateArray();
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
_kk_map_dev_mutex_lock(); _kk_map_dev_mutex_lock();
list_for_each_entry_safe(node,n, &ctx->dev_list, linked_list, kk_map_dev_node_t){ list_for_each_entry_safe(node,n, &ctx->dev_list, linked_list, kk_map_dev_node_t){
...@@ -686,7 +691,7 @@ cJSON *kk_sync_gw_version_to_sdk(cJSON *root,cJSON *data) ...@@ -686,7 +691,7 @@ cJSON *kk_sync_gw_version_to_sdk(cJSON *root,cJSON *data)
cJSON *gw_version = cJSON_CreateArray(); cJSON *gw_version = cJSON_CreateArray();
int i,gw_num; int i,gw_num;
if(devicesAry->type!=cJSON_Array){ if(devicesAry == NULL || devicesAry->type!=cJSON_Array){
return NULL; return NULL;
} }
...@@ -787,6 +792,7 @@ int kk_sync_guard_to_sdk(cJSON *root,cJSON *data) ...@@ -787,6 +792,7 @@ int kk_sync_guard_to_sdk(cJSON *root,cJSON *data)
cJSON_AddItemToObject(root, "guard", guard); cJSON_AddItemToObject(root, "guard", guard);
if(properties==NULL||properties->type!=cJSON_Object){ if(properties==NULL||properties->type!=cJSON_Object){
return -1; return -1;
} }
...@@ -1180,25 +1186,27 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data) ...@@ -1180,25 +1186,27 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data)
char roomId[32] = {0}; char roomId[32] = {0};
char deviceName[256] = {0}; char deviceName[256] = {0};
cJSON *central_ac_gws = cJSON_CreateArray();
// SYN_CENTRAL_AC_GW ac; // SYN_CENTRAL_AC_GW ac;
if(data == NULL){ if(data == NULL){
return NULL; return NULL;
} }
kk_clear_indoor_data(); kk_clear_indoor_data();
cJSON *gwAry = cJSON_GetObjectItem(data,DEVICES_STR); cJSON *gwAry = cJSON_GetObjectItem(data,DEVICES_STR);
if(gwAry == NULL) return NULL; if(gwAry == NULL) return NULL;
cJSON *central_ac_gws = cJSON_CreateArray();
gw_num = cJSON_GetArraySize(gwAry); gw_num = cJSON_GetArraySize(gwAry);
for(i = 0; i < gw_num; i++){ for(i = 0; i < gw_num; i++){
cJSON *gwitem = cJSON_GetArrayItem(gwAry,i); cJSON *gwitem = cJSON_GetArrayItem(gwAry,i);
cJSON *gwDeviceCode = cJSON_GetObjectItem(gwitem,"deviceCode"); cJSON *gwDeviceCode = cJSON_GetObjectItem(gwitem,"deviceCode");
if(gwitem == NULL) return NULL; if(gwitem == NULL) {cJSON_Delete(central_ac_gws);return NULL;}
cJSON *subAry = cJSON_GetObjectItem(gwitem,DEVICES_STR); cJSON *subAry = cJSON_GetObjectItem(gwitem,DEVICES_STR);
if(subAry == NULL) return NULL; if(subAry == NULL) {cJSON_Delete(central_ac_gws);return NULL;}
sub_num = cJSON_GetArraySize(subAry); sub_num = cJSON_GetArraySize(subAry);
for(j = 0; j < sub_num; j++){ for(j = 0; j < sub_num; j++){
cJSON *subitem = cJSON_GetArrayItem(subAry,j); cJSON *subitem = cJSON_GetArrayItem(subAry,j);
if(subitem == NULL) return NULL; if(subitem == NULL) {cJSON_Delete(central_ac_gws);return NULL;}
cJSON *productCode = cJSON_GetObjectItem(subitem,"productCode"); cJSON *productCode = cJSON_GetObjectItem(subitem,"productCode");
if(productCode != NULL && strcmp(productCode->valuestring,"3062") == 0){//空调网关设备 if(productCode != NULL && strcmp(productCode->valuestring,"3062") == 0){//空调网关设备
cJSON *deviceCode = cJSON_GetObjectItem(subitem,"deviceCode"); cJSON *deviceCode = cJSON_GetObjectItem(subitem,"deviceCode");
...@@ -1225,6 +1233,7 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data) ...@@ -1225,6 +1233,7 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data)
int epsize = cJSON_GetArraySize(epsAry); int epsize = cJSON_GetArraySize(epsAry);
g_indoor_item = (CENTRAL_AC_INDOOR_ITEM *)malloc(sizeof(CENTRAL_AC_INDOOR_ITEM)*epsize); g_indoor_item = (CENTRAL_AC_INDOOR_ITEM *)malloc(sizeof(CENTRAL_AC_INDOOR_ITEM)*epsize);
if(g_indoor_item == NULL){ if(g_indoor_item == NULL){
cJSON_Delete(central_ac_gws);
return NULL; return NULL;
} }
memset(g_indoor_item,0x0,sizeof(CENTRAL_AC_INDOOR_ITEM)*epsize); memset(g_indoor_item,0x0,sizeof(CENTRAL_AC_INDOOR_ITEM)*epsize);
......
...@@ -758,6 +758,7 @@ int dm_msg_thing_syncinfo_reply(void){ ...@@ -758,6 +758,7 @@ int dm_msg_thing_syncinfo_reply(void){
info = kk_sync_get_info(); info = kk_sync_get_info();
dm_msg_response(&request, &response, info, strlen(info), NULL); dm_msg_response(&request, &response, info, strlen(info), NULL);
free(info); free(info);
info = NULL;
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int dm_msg_thing_syncinfopush_reply(void){ int dm_msg_thing_syncinfopush_reply(void){
...@@ -780,6 +781,7 @@ int dm_msg_thing_syncinfopush_reply(void){ ...@@ -780,6 +781,7 @@ int dm_msg_thing_syncinfopush_reply(void){
info = kk_sync_get_info(); info = kk_sync_get_info();
dm_msg_response(&request, &response, info, strlen(info), NULL); dm_msg_response(&request, &response, info, strlen(info), NULL);
free(info); free(info);
info = NULL;
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -809,16 +811,14 @@ int dm_msg_thing_syncdeviceinfo_reply(cJSON *msgId){ ...@@ -809,16 +811,14 @@ int dm_msg_thing_syncdeviceinfo_reply(cJSON *msgId){
//ERROR_PRINT("dm_msg_request_parse failed"); //ERROR_PRINT("dm_msg_request_parse failed");
//return res ; //return res ;
//} //}
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
response.msgTypeStr = KK_THING_SERVICE_SYNCDEVICEINFO_REPLY; response.msgTypeStr = KK_THING_SERVICE_SYNCDEVICEINFO_REPLY;
memcpy(response.productCode, node->productCode, strlen( node->productCode)); memcpy(response.productCode, node->productCode, strlen( node->productCode));
memcpy(response.deviceCode, node->deviceCode, strlen(node->deviceCode)); memcpy(response.deviceCode, node->deviceCode, strlen(node->deviceCode));
response.code = (res == SUCCESS_RETURN) ? (IOTX_DM_ERR_CODE_SUCCESS) : (IOTX_DM_ERR_CODE_REQUEST_ERROR); response.code = (res == SUCCESS_RETURN) ? (IOTX_DM_ERR_CODE_SUCCESS) : (IOTX_DM_ERR_CODE_REQUEST_ERROR);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
info = kk_sync_get_info(); info = kk_sync_get_info();
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
dm_msg_sync_response(&request, &response, info, strlen(info), NULL); dm_msg_sync_response(&request, &response, info, strlen(info), NULL);
free(info); free(info);
info = NULL;
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
......
...@@ -443,14 +443,16 @@ int kk_topo_delete_handle(cJSON *payload,cJSON *buf) ...@@ -443,14 +443,16 @@ int kk_topo_delete_handle(cJSON *payload,cJSON *buf)
cJSON_AddStringToObject(info, MSG_DEVICE_CODE_STR, gwnode->deviceCode); cJSON_AddStringToObject(info, MSG_DEVICE_CODE_STR, gwnode->deviceCode);
cJSON_AddStringToObject(info, MSG_PRODUCT_CODE_STR, gwnode->productCode); cJSON_AddStringToObject(info, MSG_PRODUCT_CODE_STR, gwnode->productCode);
cJSON_AddItemToObject(rootData,"info",info); cJSON_AddItemToObject(rootData,"info",info);
cJSON_AddItemToObject(rootData,"payload",payload); char *payload11=cJSON_Print(payload);
cJSON_AddItemToObject(rootData,"payload",cJSON_Parse(payload11));
char *pnewout=cJSON_Print(rootData); char *pnewout=cJSON_Print(rootData);
kk_sendData2gw(pnewout, strlen(pnewout), node->fatherDeviceCode);//send to gw itself kk_sendData2gw(pnewout, strlen(pnewout), node->fatherDeviceCode);//send to gw itself
kk_scene_update_device_active(deviceCode,-1,0); kk_scene_update_device_active(deviceCode,-1,0);
kk_scene_rebuild_device_active(deviceCode,-1); kk_scene_rebuild_device_active(deviceCode,-1);
dm_mgr_subdev_delete(deviceCode); dm_mgr_subdev_delete(deviceCode);
free(pnewout); free(pnewout);
//cJSON_Delete(rootData); free(payload11);
cJSON_Delete(rootData);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -999,7 +1001,6 @@ static int kk_service_addFloor_reply(cJSON *root,cJSON *msgId,char *floorId,char ...@@ -999,7 +1001,6 @@ static int kk_service_addFloor_reply(cJSON *root,cJSON *msgId,char *floorId,char
cJSON_AddStringToObject(paramInfo, "name", name); cJSON_AddStringToObject(paramInfo, "name", name);
cJSON_AddItemToObject(payload, "params", paramInfo); cJSON_AddItemToObject(payload, "params", paramInfo);
char *payload11=cJSON_Print(payload); char *payload11=cJSON_Print(payload);
printf("------------------------------>payload11:%s\n",payload11);
kk_sendData2app(infff,payload11,0); kk_sendData2app(infff,payload11,0);
free(payload11); free(payload11);
free(infff); free(infff);
...@@ -1144,7 +1145,6 @@ static int kk_service_addScreen_handle_reply(cJSON *param,cJSON *msgId,char *ser ...@@ -1144,7 +1145,6 @@ static int kk_service_addScreen_handle_reply(cJSON *param,cJSON *msgId,char *ser
cJSON_AddItemToObject(payload, "params", paramInfo); cJSON_AddItemToObject(payload, "params", paramInfo);
char *payload11=cJSON_Print(payload); char *payload11=cJSON_Print(payload);
printf("------------------------------>payload11:%s\n",payload11);
kk_sendData2app(infff,payload11,0); kk_sendData2app(infff,payload11,0);
free(payload11); free(payload11);
free(infff); free(infff);
...@@ -1189,7 +1189,6 @@ static int kk_service_client_online_push(cJSON *param,cJSON *msgId,char *serialI ...@@ -1189,7 +1189,6 @@ static int kk_service_client_online_push(cJSON *param,cJSON *msgId,char *serialI
cJSON_AddNumberToObject(paramInfo, "online", 1); cJSON_AddNumberToObject(paramInfo, "online", 1);
cJSON_AddItemToObject(payload, "params", paramInfo); cJSON_AddItemToObject(payload, "params", paramInfo);
char *payload11=cJSON_Print(payload); char *payload11=cJSON_Print(payload);
printf("------------------------------>payload11:%s\n",payload11);
kk_sendData2app(infff,payload11,0); kk_sendData2app(infff,payload11,0);
free(payload11); free(payload11);
free(infff); free(infff);
...@@ -1723,7 +1722,6 @@ static int kk_service_getGuardSensors_handle(cJSON *param,cJSON *msgId) ...@@ -1723,7 +1722,6 @@ static int kk_service_getGuardSensors_handle(cJSON *param,cJSON *msgId)
cJSON_AddStringToObject(Item, "DeviceCode", pList[i].deviceCode); cJSON_AddStringToObject(Item, "DeviceCode", pList[i].deviceCode);
cJSON_AddItemToArray(paramArray, Item); cJSON_AddItemToArray(paramArray, Item);
} }
char *paramArray22=cJSON_Print(paramArray);
cJSON_AddItemToObject(payload, "params", paramArray); cJSON_AddItemToObject(payload, "params", paramArray);
char *payload11=cJSON_Print(payload); char *payload11=cJSON_Print(payload);
kk_sendData2app(infff,payload11,0); kk_sendData2app(infff,payload11,0);
......
...@@ -238,6 +238,7 @@ static int kk_property_sendtogw_handle(cJSON *payload,cJSON *info_root,char *dev ...@@ -238,6 +238,7 @@ static int kk_property_sendtogw_handle(cJSON *payload,cJSON *info_root,char *dev
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
res = dm_mgr_get_device_by_devicecode(deviceCode,&node); res = dm_mgr_get_device_by_devicecode(deviceCode,&node);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
cJSON_Delete(rootData);
return res; return res;
} }
char *info_rootS=cJSON_Print(info_root); char *info_rootS=cJSON_Print(info_root);
......
...@@ -82,7 +82,7 @@ int kk_sync_init(void) ...@@ -82,7 +82,7 @@ int kk_sync_init(void)
} }
static cJSON * kk_get_room_devices(const char *roomId) static int kk_get_room_devices(cJSON *item,const char *roomId)
{ {
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
const char *selectCmd = "select * from AreaDevInfo WHERE roomId = '%s';"; const char *selectCmd = "select * from AreaDevInfo WHERE roomId = '%s';";
...@@ -98,15 +98,15 @@ static cJSON * kk_get_room_devices(const char *roomId) ...@@ -98,15 +98,15 @@ static cJSON * kk_get_room_devices(const char *roomId)
sqlCmd = sqlite3_mprintf(selectCmd,roomId); sqlCmd = sqlite3_mprintf(selectCmd,roomId);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
char devName[64] = {0}; char devName[64] = {0};
deviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE); deviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
epNum = (char*)sqlite3_column_text(stmt, DB_DEV_EPNUM); epNum = (char*)sqlite3_column_text(stmt, DB_DEV_EPNUM);
res = dm_mgr_get_device_by_devicecode((char*)deviceCode,&node); res = dm_mgr_get_device_by_devicecode((char*)deviceCode,&node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
ERROR_PRINT("ERROR [%s][%d] res:%d\n",__FUNCTION__,__LINE__,res); ERROR_PRINT("ERROR [%s][%d] res:%d\n",__FUNCTION__,__LINE__,res);
return NULL; sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
return -1;
} }
if(kk_check_multi_ep_num(deviceCode)){ if(kk_check_multi_ep_num(deviceCode)){
dev = cJSON_CreateObject(); dev = cJSON_CreateObject();
...@@ -123,13 +123,12 @@ static cJSON * kk_get_room_devices(const char *roomId) ...@@ -123,13 +123,12 @@ static cJSON * kk_get_room_devices(const char *roomId)
//cJSON_AddStringToObject(dev,KK_SYNC_SCENE_EPNUM_STR,epNum); //cJSON_AddStringToObject(dev,KK_SYNC_SCENE_EPNUM_STR,epNum);
kk_get_device_name(deviceCode,epNum,devName,sizeof(devName)); kk_get_device_name(deviceCode,epNum,devName,sizeof(devName));
cJSON_AddStringToObject(dev,"name",devName); cJSON_AddStringToObject(dev,"name",devName);
cJSON_AddItemToArray(devs, dev); cJSON_AddItemToArray(devs, dev);
} }
sqlite3_free(sqlCmd); sqlite3_free(sqlCmd);
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
cJSON_AddItemToObject(item, KK_SYNC_DEVICES_STR, devs);
return devs; return 0;
} }
...@@ -190,10 +189,8 @@ static int kk_get_rooms_info(cJSON *data) ...@@ -190,10 +189,8 @@ static int kk_get_rooms_info(cJSON *data)
cJSON_AddStringToObject(roomItem, KK_SYNC_ROOMID_STR, roomId); cJSON_AddStringToObject(roomItem, KK_SYNC_ROOMID_STR, roomId);
cJSON_AddStringToObject(roomItem, KK_SYNC_NANE_STR, roomName); cJSON_AddStringToObject(roomItem, KK_SYNC_NANE_STR, roomName);
cJSON_AddStringToObject(roomItem, KK_SYNC_ROOMICON, roomIcon); cJSON_AddStringToObject(roomItem, KK_SYNC_ROOMICON, roomIcon);
kk_get_room_devices(roomItem,roomId);
roomDevicesArray = kk_get_room_devices(roomId);
cJSON_AddItemToObject(roomItem, KK_SYNC_DEVICES_STR, roomDevicesArray);
scenesArray = kk_get_room_sences(roomId); scenesArray = kk_get_room_sences(roomId);
cJSON_AddItemToObject(roomItem, KK_SYNC_SCENE_STR, scenesArray); cJSON_AddItemToObject(roomItem, KK_SYNC_SCENE_STR, scenesArray);
...@@ -590,11 +587,12 @@ static cJSON * kk_get_properties_info_obj(char *deviceCode) ...@@ -590,11 +587,12 @@ static cJSON * kk_get_properties_info_obj(char *deviceCode)
char *propertyStr = NULL; char *propertyStr = NULL;
char *valueStr = NULL; char *valueStr = NULL;
int valueType = 0; int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx(); kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
cJSON *obj = cJSON_CreateObject();
if(deviceCode == NULL ){ if(deviceCode == NULL ){
return NULL; return NULL;
} }
cJSON *obj = cJSON_CreateObject();
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;",deviceCode,KK_DM_DEVICE_SUBDEV); sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;",deviceCode,KK_DM_DEVICE_SUBDEV);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
...@@ -825,9 +823,7 @@ static int kk_get_gw_devices_info(cJSON *gwdevices) ...@@ -825,9 +823,7 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
gw_deviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE); gw_deviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
gw_productCode = (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE); gw_productCode = (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
gw_version = (char*)sqlite3_column_text(stmt, DB_SUB_VERSION); gw_version = (char*)sqlite3_column_text(stmt, DB_SUB_VERSION);
gw_isline = (char*)sqlite3_column_text(stmt, DB_SUB_ONLINE); gw_isline = (char*)sqlite3_column_text(stmt, DB_SUB_ONLINE);
printf("gw_deviceCode:%s\n",gw_deviceCode);
printf("gw_productCode:%s\n",gw_productCode);
cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_DEVICECODE_STR, gw_deviceCode); cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_DEVICECODE_STR, gw_deviceCode);
cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_VERSION_STR, gw_version); cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_VERSION_STR, gw_version);
_kk_deviceCode_switchto_mac(gw_deviceCode,macaddr); _kk_deviceCode_switchto_mac(gw_deviceCode,macaddr);
...@@ -1506,9 +1502,10 @@ char *kk_sync_get_info() ...@@ -1506,9 +1502,10 @@ char *kk_sync_get_info()
char ccu_productCode[PRODUCT_CODE_MAXLEN] = {0}; char ccu_productCode[PRODUCT_CODE_MAXLEN] = {0};
char version[32] = {0}; char version[32] = {0};
char cloudstatus_str[16] = {0}; char cloudstatus_str[16] = {0};
cJSON *data = cJSON_CreateObject(); cJSON *data = cJSON_CreateObject();
kk_get_rooms_info(data); kk_get_rooms_info(data);
kk_get_devices_info(data); kk_get_devices_info(data);
kk_get_scenes_info(data); kk_get_scenes_info(data);
kk_get_group_info(data); kk_get_group_info(data);
...@@ -1519,13 +1516,11 @@ char *kk_sync_get_info() ...@@ -1519,13 +1516,11 @@ char *kk_sync_get_info()
cJSON_AddStringToObject(data, KK_SYNC_NANE_STR, "newccu"); cJSON_AddStringToObject(data, KK_SYNC_NANE_STR, "newccu");
sprintf(cloudstatus_str, "%d", kk_get_cloudstatus()); sprintf(cloudstatus_str, "%d", kk_get_cloudstatus());
cJSON_AddStringToObject(data, KK_SYNC_ONLINE_STR, cloudstatus_str); cJSON_AddStringToObject(data, KK_SYNC_ONLINE_STR, cloudstatus_str);
cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode); cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode);
cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version); cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version);
kk_get_ccu_properties_info(data); kk_get_ccu_properties_info(data);
out=cJSON_Print(data); out=cJSON_Print(data);
INFO_PRINT("kk_sync_get_info:%s\n",out); //INFO_PRINT("kk_sync_get_info:%s\n",out);
cJSON_Delete(data); cJSON_Delete(data);
//free(out); //free(out);
return out; return out;
......
...@@ -482,9 +482,17 @@ static int kk_panel_bind_motor_delete(const char* deviceCode,int dummyId) ...@@ -482,9 +482,17 @@ static int kk_panel_bind_motor_delete(const char* deviceCode,int dummyId)
if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode((char*)deviceCode,&node)){ if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode((char*)deviceCode,&node)){
cJSON_Delete(root);
cJSON_Delete(info);
cJSON_Delete(payload);
cJSON_Delete(paras);
return -1; return -1;
} }
if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode(node->fatherDeviceCode,&gw_node)){ if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode(node->fatherDeviceCode,&gw_node)){
cJSON_Delete(root);
cJSON_Delete(info);
cJSON_Delete(payload);
cJSON_Delete(paras);
return -1; return -1;
} }
...@@ -530,9 +538,17 @@ static int kk_panel_bind_motor_add_actions(const char* deviceCode,cJSON* actions ...@@ -530,9 +538,17 @@ static int kk_panel_bind_motor_add_actions(const char* deviceCode,cJSON* actions
cJSON *paras = cJSON_CreateObject(); cJSON *paras = cJSON_CreateObject();
if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode((char*)deviceCode,&node)){ if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode((char*)deviceCode,&node)){
cJSON_Delete(root);
cJSON_Delete(info);
cJSON_Delete(payload);
cJSON_Delete(paras);
return -1; return -1;
} }
if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode(node->fatherDeviceCode,&gw_node)){ if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode(node->fatherDeviceCode,&gw_node)){
cJSON_Delete(root);
cJSON_Delete(info);
cJSON_Delete(payload);
cJSON_Delete(paras);
return -1; return -1;
} }
...@@ -755,23 +771,28 @@ int kk_dm_device_subdev_filter(char *data) ...@@ -755,23 +771,28 @@ int kk_dm_device_subdev_filter(char *data)
cJSON *json; cJSON *json;
cJSON *info_root; cJSON *info_root;
cJSON *payload,*typeJson; cJSON *payload,*typeJson;
char *payload_Str = NULL;
cJSON *deviceCode = NULL; cJSON *deviceCode = NULL;
if ((json=cJSON_Parse(data)) == NULL) { if ((json=cJSON_Parse(data)) == NULL) {
WARNING_PRINT("Error before: [%s]\n","cJSON_Parse"); WARNING_PRINT("Error before: [%s]\n","cJSON_Parse");
return -1; return -1;
} }
if((info_root = cJSON_GetObjectItem(json, "info")) == NULL) if((info_root = cJSON_GetObjectItem(json, "info")) == NULL){
cJSON_Delete(json);
return -1; return -1;
if((typeJson = cJSON_GetObjectItem(info_root, "msgtype"))== NULL) }
if((typeJson = cJSON_GetObjectItem(info_root, "msgtype"))== NULL){
cJSON_Delete(json);
return -1; return -1;
if((payload = cJSON_GetObjectItem(json, "payload")) == NULL) }
if((payload = cJSON_GetObjectItem(json, "payload")) == NULL){
cJSON_Delete(json);
return -1; return -1;
}
payload_Str = cJSON_Print(payload); if((deviceCode = cJSON_GetObjectItem(info_root, "deviceCode")) == NULL){
if((deviceCode = cJSON_GetObjectItem(info_root, "deviceCode")) == NULL) cJSON_Delete(json);
return -1; return -1;
}
if(strcmp(typeJson->valuestring,KK_THING_SERVICE_REBIND_MOTORS) == 0){ if(strcmp(typeJson->valuestring,KK_THING_SERVICE_REBIND_MOTORS) == 0){
INFO_PRINT("REBIND_MOTORS \n"); INFO_PRINT("REBIND_MOTORS \n");
...@@ -806,6 +827,7 @@ int kk_dm_device_subdev_filter(char *data) ...@@ -806,6 +827,7 @@ int kk_dm_device_subdev_filter(char *data)
struct kk_motor_bind_info *info = (struct kk_motor_bind_info *)malloc(sizeof(struct kk_motor_bind_info)*KK_MOTOR_BIND_INFO_MAX); struct kk_motor_bind_info *info = (struct kk_motor_bind_info *)malloc(sizeof(struct kk_motor_bind_info)*KK_MOTOR_BIND_INFO_MAX);
if(info == NULL){ if(info == NULL){
cJSON_Delete(json);
return -1; return -1;
} }
memset(info,0x0,sizeof(struct kk_motor_bind_info)*KK_MOTOR_BIND_INFO_MAX); memset(info,0x0,sizeof(struct kk_motor_bind_info)*KK_MOTOR_BIND_INFO_MAX);
...@@ -823,9 +845,10 @@ int kk_dm_device_subdev_filter(char *data) ...@@ -823,9 +845,10 @@ int kk_dm_device_subdev_filter(char *data)
free(info); free(info);
}else{ }else{
cJSON_Delete(json);
return -1; return -1;
} }
cJSON_Delete(json);
return 0; return 0;
} }
......
...@@ -1028,6 +1028,7 @@ static int kk_scene_parse_trigger_event_type(const char *type,const cJSON *item, ...@@ -1028,6 +1028,7 @@ static int kk_scene_parse_trigger_event_type(const char *type,const cJSON *item,
char *compareValue = cJSON_PrintUnformatted(compares); char *compareValue = cJSON_PrintUnformatted(compares);
res = kk_scene_insert_scene_trigger(type,deviceCode->valuestring,ep, res = kk_scene_insert_scene_trigger(type,deviceCode->valuestring,ep,
propertyName->valuestring,"",compareValue,sceneId,isAnd); propertyName->valuestring,"",compareValue,sceneId,isAnd);
free(compareValue);
return res; return res;
} }
/************************************************************ /************************************************************
...@@ -2624,6 +2625,7 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha ...@@ -2624,6 +2625,7 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
} }
int array_size = cJSON_GetArraySize ( json ); int array_size = cJSON_GetArraySize ( json );
if(array_size == 0){ if(array_size == 0){
cJSON_Delete(json);
return FAIL_RETURN; return FAIL_RETURN;
} }
for(cnt = 0; cnt < array_size; cnt++){ for(cnt = 0; cnt < array_size; cnt++){
...@@ -2633,8 +2635,8 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha ...@@ -2633,8 +2635,8 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
if(propertyName == NULL){continue ; } if(propertyName == NULL){continue ; }
if(strcmp(propertyName->valuestring,"KeyType") == 0){ if(strcmp(propertyName->valuestring,"KeyType") == 0){
compareValue = cJSON_GetObjectItem(pSub,"compareValue"); compareValue = cJSON_GetObjectItem(pSub,"compareValue");
if(strcmp(compareValue->valuestring,keyType) != 0){ if(strcmp(compareValue->valuestring,keyType) != 0){
cJSON_Delete(json);
return FAIL_RETURN; return FAIL_RETURN;
}else{ }else{
continue; continue;
...@@ -2643,10 +2645,12 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha ...@@ -2643,10 +2645,12 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
if(strcmp(propertyName->valuestring,"KeyID") == 0){ if(strcmp(propertyName->valuestring,"KeyID") == 0){
compareValue = cJSON_GetObjectItem(pSub,"compareValue"); compareValue = cJSON_GetObjectItem(pSub,"compareValue");
if(strcmp(compareValue->valuestring,keyId) != 0){ if(strcmp(compareValue->valuestring,keyId) != 0){
cJSON_Delete(json);
return FAIL_RETURN; return FAIL_RETURN;
} }
} }
} }
cJSON_Delete(json);
return SUCCESS_RETURN; return SUCCESS_RETURN;
}else if(!strcmp(proName,"LockState") && !strcmp(value,"1")){ }else if(!strcmp(proName,"LockState") && !strcmp(value,"1")){
return SUCCESS_RETURN; return SUCCESS_RETURN;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment