Mod aaa-12 修改web_interface.c文件

RCA:
SOL:
修改人:chenpeng
检视人
This commit is contained in:
chenpeng 2019-10-25 15:05:56 +08:00
parent 7926922f85
commit ff08ddb462
1 changed files with 86 additions and 55 deletions

View File

@ -40,6 +40,7 @@ char * interface_send_server(interface_ss *data_in){
int len = strlen(out_string);
char* szOut = (char*)malloc(sizeof(char)*len);
strcpy(szOut,out_string);
free(out_string);
cJSON_Delete(json);
return szOut;
@ -53,10 +54,12 @@ end:
2
-
**/
int interface_get_server(server * srv ,char *data_in,interface_sg *data_out,cJSON *json){
json = cJSON_Parse(data_in);
int interface_get_server(server * srv ,char * data_in,interface_sg *data_out,cJSON *json1){
srv = srv;
data_in =data_in;
cJSON *json = json1;
//json = cJSON_Parse(data_in);
if(!json){goto end;}
//char * operate = cJSON_GetObjectItem(json, "operate")->valuestring;
cJSON *json_data = cJSON_GetObjectItem(json, "resultCode");
@ -164,12 +167,12 @@ int interface_get_server(server * srv ,char *data_in,interface_sg *data_out,cJSO
int ipv6_size = cJSON_GetArraySize(ipv6Array); //读取数组大小
data_out->data[i]._arripv6 = ipv6_size;
for(int j=0;j<ipv6_size;j++){
cJSON *ArrayItem = cJSON_GetArrayItem(ipv6Array,j); //分别读取数组中每一个object对象。
json_data = cJSON_GetObjectItem(ArrayItem, "addr");
cJSON *ArrayItemtem = cJSON_GetArrayItem(ipv6Array,j); //分别读取数组中每一个object对象。
json_data = cJSON_GetObjectItem(ArrayItemtem, "addr");
if(json_data == NULL){data_out->data[i].ipv6_data[j].ipv6_ipaddr = "";}
else {data_out->data[i].ipv6_data[j].ipv6_ipaddr = json_data->valuestring;}
json_data = cJSON_GetObjectItem(ArrayItem, "prefixlen");
json_data = cJSON_GetObjectItem(ArrayItemtem, "prefixlen");
if(json_data == NULL){data_out->data[i].ipv6_data[j].ipv6_prefixlen ="";}
else{data_out->data[i].ipv6_data[j].ipv6_prefixlen = json_data->valuestring;}
@ -181,19 +184,18 @@ int interface_get_server(server * srv ,char *data_in,interface_sg *data_out,cJSO
}
}
return 0;
end:
return 1;
}
int temp_interface_get_server(char *data_in,interface_sg *data_out,cJSON *json){
//cJSON *json;
int temp_interface_get_server(char *data_in,interface_sg *data_out,cJSON *json1){
//interface_sg *data_struct;
//data_struct = (interface_sg*)malloc(sizeof(interface_sg ));
json = cJSON_Parse(data_in);
data_in =data_in;
cJSON *json = json1;
//json = cJSON_Parse(data_in);
if(!json){ goto end;}
//char * operate = cJSON_GetObjectItem(json, "operate")->valuestring;
@ -292,12 +294,12 @@ int temp_interface_get_server(char *data_in,interface_sg *data_out,cJSON *json){
int ipv6_size = cJSON_GetArraySize(ipv6Array); //读取数组大小
data_out->data[i]._arripv6 = ipv6_size;
for(int j=0;j<ipv6_size;j++){
cJSON *ArrayItem = cJSON_GetArrayItem(ipv6Array,j); //分别读取数组中每一个object对象。
json_data = cJSON_GetObjectItem(ArrayItem, "addr");
cJSON *ArrayItemtem = cJSON_GetArrayItem(ipv6Array,j); //分别读取数组中每一个object对象。
json_data = cJSON_GetObjectItem(ArrayItemtem, "addr");
if(json_data == NULL){data_out->data[i].ipv6_data[j].ipv6_ipaddr = "";}
else {data_out->data[i].ipv6_data[j].ipv6_ipaddr = json_data->valuestring;}
json_data = cJSON_GetObjectItem(ArrayItem, "prefixlen");
json_data = cJSON_GetObjectItem(ArrayItemtem, "prefixlen");
if(json_data == NULL){data_out->data[i].ipv6_data[j].ipv6_prefixlen ="";}
else{data_out->data[i].ipv6_data[j].ipv6_prefixlen = json_data->valuestring;}
@ -321,30 +323,32 @@ end:
-
**/
int interface_get_web(char *data_in,interface_wg *data_out,cJSON *json){
//cJSON *json;
int interface_get_web(char *data_in,interface_wg *data_out,cJSON *json1){
json = cJSON_Parse(data_in);
data_in =data_in;
cJSON *json = json1;
//json = cJSON_Parse(data_in);
if(!json){ goto end;}
//char * operate = cJSON_GetObjectItem(json, "operate")->valuestring;
cJSON * json_data = cJSON_GetObjectItem(json, "type");
if(json_data == NULL){data_out->type ="";}
else{data_out->type = json_data->valuestring;}
json_data = cJSON_GetObjectItem(json, "data");
if(json_data == NULL){
cJSON * item = cJSON_GetObjectItem(json, "data");
if(item == NULL){
data_out->page_num ="";
data_out->page_count ="";
}
else{
cJSON * item = cJSON_GetObjectItem(json, "data");
json_data = cJSON_GetObjectItem(item, "page_num");
if(json_data == NULL){data_out->page_num ="";}
else{data_out->page_num = json_data->valuestring;}
json_data = cJSON_GetObjectItem(item, "page_count");
if(json_data == NULL){data_out->page_count ="";}
else{data_out->page_count = json_data->valuestring;}
cJSON * jsdata = cJSON_GetObjectItem(item, "page_num");
if(jsdata == NULL){data_out->page_num ="";}
else{data_out->page_num = jsdata->valuestring;}
jsdata = cJSON_GetObjectItem(item, "page_count");
if(jsdata == NULL){data_out->page_count ="";}
else{data_out->page_count = jsdata->valuestring;}
}
@ -391,6 +395,7 @@ char *interface_send_web(interface_ws *data_in){
int out_len = strlen(out_string);
char* szOut = (char*)malloc(sizeof(char)*out_len);
strcpy(szOut,out_string);
free(out_string);
cJSON_Delete(json);
return szOut;
end:
@ -416,6 +421,7 @@ char *interface_vlan_send_server(interface_vlan_ss * data_in){
int len = strlen(out_string);
char* szOut = (char*)malloc(sizeof(char)*len);
strcpy(szOut,out_string);
free(out_string);
cJSON_Delete(json);
return szOut;
end:
@ -425,10 +431,12 @@ end:
}
//VLAN数据解析
int interface_vlan_get_server(char *data_in, interface_vlan_sg *data_out,cJSON *json){
//cJSON *json;
int interface_vlan_get_server(char *data_in, interface_vlan_sg *data_out,cJSON *json1){
json = cJSON_Parse(data_in);
data_in =data_in;
cJSON *json = json1;
//json = cJSON_Parse(data_in);
if(!json){goto end;}
cJSON * Array = cJSON_GetObjectItem(json, "if_vlan"); //从json中获得jsonarray
if(Array == NULL){goto end;}//初始话出错
@ -506,6 +514,7 @@ char * interface_vlan_send_web(interface_vlan_ws *data_in){
int out_len = strlen(out_string);
char* szOut = (char*)malloc(sizeof(char)*out_len);
strcpy(szOut,out_string);
free(out_string);
cJSON_Delete(json);
return szOut;
end:
@ -513,10 +522,12 @@ end:
return NULL;
}
//配置IP
char * interface_conip_send_web(interface_conip_ws *data_in){
char * interface_conip_send_web(server *srv,interface_conip_ws *data_in){
srv =srv;
cJSON * json;
json = cJSON_CreateObject(); //创建对象
if(NULL == json) {goto end;}
cJSON_AddStringToObject(json, "retcode", data_in->retcode);
cJSON_AddStringToObject(json, "message", data_in->message);
cJSON * page_json = cJSON_CreateObject(); //创建对象
@ -532,14 +543,20 @@ char * interface_conip_send_web(interface_conip_ws *data_in){
cJSON_AddStringToObject(ArrayItem, "interface_type", data_in->data[i].interface_type);
cJSON_AddStringToObject(ArrayItem, "ifname",data_in->data[i].ifname );
cJSON *iptypeArray = cJSON_CreateArray(); //创建数组
for(int j=0;j<data_in->data[i]._coniplen;j++){
cJSON *Arrayconip = cJSON_CreateObject(); //创建一个对象将对象
cJSON_AddNumberToObject(Arrayconip, "family", data_in->data[i].condata[j].family);
cJSON_AddStringToObject(Arrayconip, "ipaddr",data_in->data[i].condata[j].ipaddr);
cJSON_AddStringToObject(Arrayconip, "prefixlen",data_in->data[i].condata[j].prefixlen);
//printf("prefixlen:%s\n",data_in->data[i].condata[j].prefixlen);
cJSON_AddItemToArray(iptypeArray, Arrayconip);//将该对象依次添加到数组里
}
cJSON *Arrayconip1 = cJSON_CreateObject(); //创建一个对象将对象
cJSON_AddNumberToObject(Arrayconip1, "family", data_in->data[i].condata[0].family);
cJSON_AddStringToObject(Arrayconip1, "ipaddr",data_in->data[i].condata[0].ipaddr);
cJSON_AddStringToObject(Arrayconip1, "prefixlen",data_in->data[i].condata[0].prefixlen);
cJSON_AddItemToArray(iptypeArray, Arrayconip1);//将该对象依次添加到数组里
cJSON *Arrayconip2 = cJSON_CreateObject(); //创建一个对象将对象
cJSON_AddNumberToObject(Arrayconip2, "family", data_in->data[i].condata[1].family);
cJSON_AddStringToObject(Arrayconip2, "ipaddr",data_in->data[i].condata[1].ipaddr);
cJSON_AddStringToObject(Arrayconip2, "prefixlen",data_in->data[i].condata[1].prefixlen);
cJSON_AddItemToArray(iptypeArray, Arrayconip2);//将该对象依次添加到数组里
cJSON_AddItemToObject(ArrayItem, "ip_type", iptypeArray); //将数组添加到ArrayItem对象中
cJSON_AddItemToArray(JsonArray, ArrayItem);//将该对象依次添加到数组里
@ -551,6 +568,7 @@ char * interface_conip_send_web(interface_conip_ws *data_in){
int out_len = strlen(out_string);
char* szOut = (char*)malloc(sizeof(char)*out_len);
strcpy(szOut,out_string);
free(out_string);
cJSON_Delete(json);
return szOut;
end:
@ -578,6 +596,7 @@ char * interface_conipenable_send_web(interface_conipenable_ws *data_in){
int out_len = strlen(out_string);
char* szOut = (char*)malloc(sizeof(char)*out_len);
strcpy(szOut,out_string);
free(out_string);
cJSON_Delete(json);
return szOut;
end:
@ -591,6 +610,7 @@ end:
char * interface_process(server *srv,char * data_in,void *point){
//处理web请求
//从WEB端解析数据
srv =srv;
cJSON *json_get_web = NULL; //
cJSON *json_get_server= NULL;
cJSON *json_vlan_get_server= NULL;
@ -601,6 +621,7 @@ char * interface_process(server *srv,char * data_in,void *point){
int flag =1;
interface_wg data_web;
json_get_web = cJSON_Parse(data_in);
flag = interface_get_web(data_in,&data_web,json_get_web); //
if(flag == 1){log_error_write(srv, __FILE__, __LINE__, "s", "WEB Parsing data error-interface"); return NULL;}
@ -617,7 +638,7 @@ char * interface_process(server *srv,char * data_in,void *point){
else {log_error_write(srv, __FILE__, __LINE__, "s", "CFG lod error-interface");return NULL;}
free( json_data);
interface_sg server_get_data ; //定义获取到的SERVER端数据结构
json_get_server = cJSON_Parse(mess_str);
flag = interface_get_server(srv,mess_str,&server_get_data,json_get_server);//从服务端解析数据
if(flag){log_error_write(srv, __FILE__, __LINE__, "s", "SERVER Parsing data error-interface");return NULL; }
@ -673,6 +694,7 @@ char * interface_process(server *srv,char * data_in,void *point){
free(ss_data);
interface_vlan_sg svlan_get_data; //定义VLAN数据解析的结构体
json_vlan_get_server = cJSON_Parse(mess_str);
flag = interface_vlan_get_server(mess_str,& svlan_get_data,json_vlan_get_server);//从VLAN服务端解析数据
if(flag != 0){log_error_write(srv, __FILE__, __LINE__, "s", "SERVER parsing data error-interface");return NULL;}
websend_data.data[index].vlan_flag = svlan_get_data.data[0]._vlan_flag; //每次取一条
@ -706,6 +728,7 @@ char * interface_vlan_process(server *srv,char * data_in,void *point){
mod_webm_plugin_data *p_d = point;
interface_wg data_web;
json_get_web = cJSON_Parse(data_in);
flag = interface_get_web(data_in,&data_web,json_get_web); //
if(flag == 1){log_error_write(srv, __FILE__, __LINE__, "s", "WEB数据解析出错-VLAN"); return NULL;}
@ -730,6 +753,7 @@ char * interface_vlan_process(server *srv,char * data_in,void *point){
//解析vlan返回数据。
interface_vlan_sg vlandata;
json_vlan_get_server = cJSON_Parse(mess_str);
flag = interface_vlan_get_server(mess_str,&vlandata,json_vlan_get_server);//从VLAN服务端解析数据
if(flag == 1){log_error_write(srv, __FILE__, __LINE__, "s", "SERVER数据解析出错-VLAN");return NULL;}
int index =0;
@ -786,6 +810,7 @@ char * interface_vlan_process(server *srv,char * data_in,void *point){
//printf("解析服务断数据: \n");
//log_error_write(srv, __FILE__, __LINE__, "s", mess_str);///////////////////////
interface_sg server_get_data ; //定义获取到的SERVER端数据结构
json_get_server = cJSON_Parse(mess_str);
flag = temp_interface_get_server(mess_str,&server_get_data,json_get_server);//从服务端解析数据
if(flag !=0 ){log_error_write(srv, __FILE__, __LINE__, "d", flag);return NULL; }
websend_vlan_data.data[k].vlan_id = name[k];
@ -810,14 +835,14 @@ char * interface_conip_process(server *srv,char * data_in,void *point){
cJSON *json_get_web= NULL; //
cJSON *json_get_server= NULL;
int flag;
int flag=1;
char *mess_str = NULL;
int mess_len = 0;
mod_webm_plugin_data *p_d = point;
//printf("解析WEB数据: \n");
interface_wg data_web;
json_get_web = cJSON_Parse(data_in);
flag = interface_get_web(data_in,&data_web,json_get_web); //
if(flag == 1){log_error_write(srv, __FILE__, __LINE__, "s", "WEB解析数据出错-CONIP"); return NULL;}
@ -841,9 +866,9 @@ char * interface_conip_process(server *srv,char * data_in,void *point){
//printf("解析服务断数据: \n");
interface_sg server_get_data ; //定义获取到的SERVER端数据结构
json_get_server = cJSON_Parse(mess_str);
flag = interface_get_server(srv,mess_str,&server_get_data,json_get_server);//从服务端解析数据
if(flag){log_error_write(srv, __FILE__, __LINE__, "s", "SERVER端解析数据出错-CONIP");return NULL; }
if(flag){log_error_write(srv, __FILE__, __LINE__, "s", "SERVER端解析数据出错-CONIP");return NULL; }////////////////////////////////////////////
interface_conip_ws websend_conip_data; // 定义发送 到WEB数据结构
websend_conip_data.retcode =server_get_data.resultCode;
@ -891,9 +916,12 @@ char * interface_conip_process(server *srv,char * data_in,void *point){
websend_conip_data.page_num =page_num_str;
websend_conip_data.page_count=page_count_str;
websend_conip_data.total = total_str;
char * wout = interface_conip_send_web(&websend_conip_data);
char * wout = interface_conip_send_web(srv,&websend_conip_data);
cJSON_Delete(json_get_web); //
cJSON_Delete(json_get_server); //
return wout;
}
//查询能配置IP的接口
@ -912,6 +940,7 @@ char * interface_conipenable_process(server *srv,char * data_in,void *point){
//printf("解析WEB数据: \n");
interface_wg data_web;
json_get_web = cJSON_Parse(data_in);
flag = interface_get_web(data_in,&data_web,json_get_web); //
if(flag == 1){log_error_write(srv, __FILE__, __LINE__, "s", "WEB解析数据出错-ENIP"); return NULL;}
@ -933,6 +962,7 @@ char * interface_conipenable_process(server *srv,char * data_in,void *point){
//服务端数据解析
interface_sg server_get_data ; //定义获取到的SERVER端数据结构
json_get_server = cJSON_Parse(mess_str);
flag = interface_get_server(srv,mess_str,&server_get_data,json_get_server);//从服务端解析数据
if(flag){log_error_write(srv, __FILE__, __LINE__, "s", "SERVER端解析数据出错-ENIP");return NULL; }
@ -970,6 +1000,7 @@ char * interface_failure(void){
int len = strlen(out_string);
char* szOut = (char*)malloc(sizeof(char)*len);
strcpy(szOut,out_string);
free(out_string);
cJSON_Delete(json);
return szOut;
}