Mod aaa-12 修改web_interface.c文件

RCA:
SOL:
修改人:chenpeng
检视人
This commit is contained in:
chenpeng 2019-10-24 16:08:51 +08:00
parent f5bc20b62d
commit 7926922f85
1 changed files with 69 additions and 45 deletions

View File

@ -53,13 +53,10 @@ end:
2
-
**/
int interface_get_server(char *data_in,interface_sg *data_out){
cJSON *json;
int interface_get_server(server * srv ,char *data_in,interface_sg *data_out,cJSON *json){
//interface_sg *data_struct;
//data_struct = (interface_sg*)malloc(sizeof(interface_sg ));
json = cJSON_Parse(data_in);
if(!json){goto end;}
//char * operate = cJSON_GetObjectItem(json, "operate")->valuestring;
cJSON *json_data = cJSON_GetObjectItem(json, "resultCode");
@ -125,19 +122,19 @@ int interface_get_server(char *data_in,interface_sg *data_out){
}
else{
json_data = cJSON_GetObjectItem(statistics_data, "rcv_packets");
if(json_data == NULL){data_out->data[i].rcv_packets = "";;}
if(json_data == NULL){data_out->data[i].rcv_packets = "";}
else{data_out->data[i].rcv_packets = json_data->valuestring;}
json_data = cJSON_GetObjectItem(statistics_data, "rcv_bytes");
if(json_data == NULL){data_out->data[i].rcv_bytes = "";;}
if(json_data == NULL){data_out->data[i].rcv_bytes = "";}
else{data_out->data[i].rcv_bytes = json_data->valuestring;}
json_data = cJSON_GetObjectItem(statistics_data, "snd_packets");
if(json_data == NULL){data_out->data[i].snd_packets = "";;}
if(json_data == NULL){data_out->data[i].snd_packets = "";}
else{data_out->data[i].snd_packets = json_data->valuestring;}
json_data = cJSON_GetObjectItem(statistics_data, "snd_bytes");
if(json_data == NULL){data_out->data[i].snd_bytes = "";;}
if(json_data == NULL){data_out->data[i].snd_bytes = "";}
else{data_out->data[i].snd_bytes = json_data->valuestring;}
}
@ -184,15 +181,15 @@ int interface_get_server(char *data_in,interface_sg *data_out){
}
}
//printf("adress:%p\n",data_struct);
return 0;
end:
return 1;
}
int temp_interface_get_server(char *data_in,interface_sg *data_out){
cJSON *json;
int temp_interface_get_server(char *data_in,interface_sg *data_out,cJSON *json){
//cJSON *json;
//interface_sg *data_struct;
//data_struct = (interface_sg*)malloc(sizeof(interface_sg ));
@ -324,8 +321,8 @@ end:
-
**/
int interface_get_web(char *data_in,interface_wg *data_out){
cJSON *json;
int interface_get_web(char *data_in,interface_wg *data_out,cJSON *json){
//cJSON *json;
json = cJSON_Parse(data_in);
if(!json){ goto end;}
@ -428,8 +425,8 @@ end:
}
//VLAN数据解析
int interface_vlan_get_server(char *data_in, interface_vlan_sg *data_out){
cJSON *json;
int interface_vlan_get_server(char *data_in, interface_vlan_sg *data_out,cJSON *json){
//cJSON *json;
json = cJSON_Parse(data_in);
if(!json){goto end;}
@ -594,13 +591,17 @@ end:
char * interface_process(server *srv,char * data_in,void *point){
//处理web请求
//从WEB端解析数据
cJSON *json_get_web = NULL; //
cJSON *json_get_server= NULL;
cJSON *json_vlan_get_server= NULL;
char *mess_str = NULL;
int mess_len = 0;
mod_webm_plugin_data *p_d = point;
int flag =1;
interface_wg data_web;
flag = interface_get_web(data_in,&data_web); //
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;}
interface_ss server_send_data;
@ -615,15 +616,16 @@ 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端数据结构
flag = interface_get_server(mess_str,&server_get_data);//从服务端解析数据
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; }
interface_ws websend_data; //定义发送WEB端的数据结构
websend_data.retcode=server_get_data.resultCode;
websend_data.message=server_get_data.message;
websend_data.pages="";
int index = 0; //发送端数据结构索引
for(int i=0;i<server_get_data._datalen;i++){
char * rol = server_get_data.data[i].role;
@ -633,24 +635,24 @@ char * interface_process(server *srv,char * data_in,void *point){
websend_data.data[index].mac = server_get_data.data[i].hwaddr;
char temp[20];
char temp[20]={"0"};
char *bytes = server_get_data.data[i].rcv_bytes;
//char *packets = server_get_data.data[i].rcv_packets;
double flow =atoi(bytes);
if(flow<=1024) {sprintf(temp, "%.2fb", flow);}
else if(flow>1024 && flow<=1048576) {sprintf(temp, "%.2fk", (flow/1024));}
else if(flow>1048576 && flow<=1048576000) {sprintf(temp, "%.2fM", (flow/1048576));}
else if(flow>1048576000 ) {sprintf(temp, "%.2fG", (flow/1048576000));}
long int flow =atol(bytes);
if(flow<=1024) {sprintf(temp, "%ldB", flow);}
else if(flow>1024 && flow<=1048576) {sprintf(temp, "%.2fK", (flow/1024.0));}
else if(flow>1048576 && flow<=1048576000) {sprintf(temp, "%.2fM", (flow/1048576.0));}
else if(flow>1048576000 ) {sprintf(temp, "%.2fG", (flow/1048576000.0));}
strcpy(websend_data.data[index].input_flow,temp);
//strcat( websend_data.data[index].input_flow, packets); //包个数
char *sndbytes = server_get_data.data[i].snd_bytes;
//char *sndpackets = server_get_data.data[i].snd_packets;
flow =atoi(sndbytes);
if(flow<=1024) {sprintf(temp, "%.2fb", flow);}
else if(flow>1024 && flow<=1048576) {sprintf(temp, "%.2fk", (flow/1024));}
else if(flow>1048576 && flow<=1048576000) {sprintf(temp, "%.2fM", (flow/1048576));}
else if(flow>1048576000 ) {sprintf(temp, "%.2fG", (flow/1048576000));}
flow =atol(sndbytes);
if(flow<=1024) {sprintf(temp, "%ldB", flow);}
else if(flow>1024 && flow<=1048576) {sprintf(temp, "%.2fK", (flow/1024.0));}
else if(flow>1048576 && flow<=1048576000) {sprintf(temp, "%.2fM", (flow/1048576.0));}
else if(flow>1048576000 ) {sprintf(temp, "%.2fG", (flow/1048576000.0));}
strcpy(websend_data.data[index].output_flow,temp);
//strcat( websend_data.data[index].output_flow, sndpackets); //包个数
@ -669,9 +671,9 @@ char * interface_process(server *srv,char * data_in,void *point){
}
else {log_error_write(srv, __FILE__, __LINE__, "s", "CFG load error");return NULL;}
free(ss_data);
interface_vlan_sg svlan_get_data; //定义VLAN数据解析的结构体
flag = interface_vlan_get_server(mess_str,& svlan_get_data);//从VLAN服务端解析数据
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; //每次取一条
websend_data.data[index]._arrlen = svlan_get_data.data[0]._arrlen;
@ -683,6 +685,9 @@ char * interface_process(server *srv,char * data_in,void *point){
websend_data._datalen = index;
}
char* wout = interface_send_web( &websend_data); //向WEB端发送数据
cJSON_Delete(json_get_web); //
cJSON_Delete(json_get_server); //
cJSON_Delete(json_vlan_get_server); //
return wout;
}
@ -690,13 +695,18 @@ char * interface_process(server *srv,char * data_in,void *point){
char * interface_vlan_process(server *srv,char * data_in,void *point){
//处理web请求
//从WEB端解析数据
cJSON *json_get_web= NULL; //
cJSON *json_get_server= NULL;
cJSON *json_vlan_get_server= NULL;
int flag;
char *mess_str = NULL;
int mess_len = 0;
mod_webm_plugin_data *p_d = point;
interface_wg data_web;
flag = interface_get_web(data_in,&data_web); //
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;}
char * page_num_str = data_web.page_num;
@ -718,10 +728,9 @@ char * interface_vlan_process(server *srv,char * data_in,void *point){
//printf("生成vlan_get_json:\n%s\n",vlanget);
free(vlanget);
//解析vlan返回数据。
interface_vlan_sg vlandata;
flag = interface_vlan_get_server(mess_str,&vlandata);//从VLAN服务端解析数据
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;
int vid_vector[VLAN_COUNT]={-1}; //存放VLAN数量
@ -777,7 +786,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端数据结构
flag = temp_interface_get_server(mess_str,&server_get_data);//从服务端解析数据
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];
websend_vlan_data.data[k].ipv4 = server_get_data.data[0].ipv4_ipaddr;
@ -786,15 +795,22 @@ char * interface_vlan_process(server *srv,char * data_in,void *point){
websend_vlan_data.data[k].submask_ipv6 = server_get_data.data[0].ipv6_data[0].ipv6_prefixlen;
//printf("解析完成: \n");
}
websend_vlan_data._datalen = k;
char * wout = interface_vlan_send_web(&websend_vlan_data);
websend_vlan_data._datalen = k;
char * wout = interface_vlan_send_web(&websend_vlan_data);
cJSON_Delete(json_get_web); //
cJSON_Delete(json_get_server); //
cJSON_Delete(json_vlan_get_server); //
return wout;
}
//查询已经配置IP的接口
char * interface_conip_process(server *srv,char * data_in,void *point){
//处理web请求
//从WEB端解析数据
cJSON *json_get_web= NULL; //
cJSON *json_get_server= NULL;
int flag;
char *mess_str = NULL;
int mess_len = 0;
@ -802,7 +818,7 @@ char * interface_conip_process(server *srv,char * data_in,void *point){
//printf("解析WEB数据: \n");
interface_wg data_web;
flag = interface_get_web(data_in,&data_web); //
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;}
char * page_num_str = data_web.page_num;
@ -825,7 +841,7 @@ char * interface_conip_process(server *srv,char * data_in,void *point){
//printf("解析服务断数据: \n");
interface_sg server_get_data ; //定义获取到的SERVER端数据结构
flag = interface_get_server(mess_str,&server_get_data);//从服务端解析数据
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; }
interface_conip_ws websend_conip_data; // 定义发送 到WEB数据结构
@ -876,12 +892,18 @@ char * interface_conip_process(server *srv,char * data_in,void *point){
websend_conip_data.page_count=page_count_str;
websend_conip_data.total = total_str;
char * wout = interface_conip_send_web(&websend_conip_data);
cJSON_Delete(json_get_web); //
cJSON_Delete(json_get_server); //
return wout;
}
//查询能配置IP的接口
char * interface_conipenable_process(server *srv,char * data_in,void *point){
//处理web请求
//从WEB端解析数据
cJSON *json_get_web= NULL; //
cJSON *json_get_server= NULL;
int flag;
char *mess_str = NULL;
int mess_len = 0;
@ -890,7 +912,7 @@ char * interface_conipenable_process(server *srv,char * data_in,void *point){
//printf("解析WEB数据: \n");
interface_wg data_web;
flag = interface_get_web(data_in,&data_web); //
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;}
//向interface服务端发送请求
@ -911,7 +933,7 @@ char * interface_conipenable_process(server *srv,char * data_in,void *point){
//服务端数据解析
interface_sg server_get_data ; //定义获取到的SERVER端数据结构
flag = interface_get_server(mess_str,&server_get_data);//从服务端解析数据
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; }
interface_conipenable_ws websend_conipen_data; // 定义发送 到WEB数据结构
@ -931,6 +953,8 @@ char * interface_conipenable_process(server *srv,char * data_in,void *point){
}
websend_conipen_data._datalen =index;
char * wout = interface_conipenable_send_web(&websend_conipen_data);
cJSON_Delete(json_get_web); //
cJSON_Delete(json_get_server); //
return wout;
}
//失败返回json