Mod aaa-12 修改静态路由静态检查问题

RCA:
SOL:
修改人:tongyebin
检视人:
This commit is contained in:
tongyebin 2019-09-17 11:09:41 +08:00
parent 532e76cb65
commit 18ffb3c6d9
1 changed files with 22 additions and 26 deletions

View File

@ -32,7 +32,6 @@ ret_code routing_to_json(int count, routing_t *buff_total, pointer output, int *
ret_code ret = RET_OK;
char *json_routing;
int i;
cJSON *ret_root = cJSON_CreateObject();
if(ret_root == NULL)
@ -53,7 +52,7 @@ ret_code routing_to_json(int count, routing_t *buff_total, pointer output, int *
}
if(count > 0)
{
for(i = 0; i < count; i++)
for(int i = 0; i < count; i++)
{
cJSON *json_obj = cJSON_CreateObject();
if (NULL == json_obj)
@ -836,7 +835,7 @@ ret_code get_all_from_file (pointer output, int *output_len)
routing_t *buff_total;
int flag = 0;
int version = 0;
int version;
char destip[IP_MAX_LENGTH] = {0};
int netmask = 0;
char gateway[IP_MAX_LENGTH] = {0};
@ -879,13 +878,13 @@ ret_code get_all_from_file (pointer output, int *output_len)
switch(flag){
case BOTH_GW_AND_DEV:
sscanf(buff,"%*s%*s%*s%*s%*s%*s%s%*s%s%*s%d",gateway,dev, &metric);
sscanf(buff,"%*s%*s%*s%*s%*s%*s%20s%*s%20s%*s%6d",gateway,dev, &metric);
break;
case ONLY_GW:
sscanf(buff,"%*s%*s%*s%*s%*s%*s%s%*s%d",gateway, &metric);
sscanf(buff,"%*s%*s%*s%*s%*s%*s%20s%*s%6d",gateway, &metric);
break;
case ONLY_DEV:
sscanf(buff,"%*s%*s%*s%*s%*s%*s%s%*s%d",dev, &metric);
sscanf(buff,"%*s%*s%*s%*s%*s%*s%20s%*s%6d",dev, &metric);
break;
default:
if(buff_total)
@ -905,13 +904,13 @@ ret_code get_all_from_file (pointer output, int *output_len)
switch(flag){
case BOTH_GW_AND_DEV:
sscanf(buff,"%*s%*s%*s%*s %[^/]/%d%*s%s%*s%s%*s%d",destip,&netmask,gateway,dev, &metric);
sscanf(buff,"%*s%*s%*s%*s %20[^/]/%4d%*s%20s%*s%20s%*s%6d",destip,&netmask,gateway,dev, &metric);
break;
case ONLY_GW:
sscanf(buff,"%*s%*s%*s%*s %[^/]/%d%*s%s%*s%d",destip,&netmask,gateway,&metric);
sscanf(buff,"%*s%*s%*s%*s %20[^/]/%4d%*s%20s%*s%6d",destip,&netmask,gateway,&metric);
break;
case ONLY_DEV:
sscanf(buff,"%*s%*s%*s%*s %[^/]/%d%*s%s%*s%d",destip,&netmask,dev,&metric);
sscanf(buff,"%*s%*s%*s%*s %20[^/]/%4d%*s%20s%*s%6d",destip,&netmask,dev,&metric);
break;
default:
if(buff_total)
@ -930,13 +929,13 @@ ret_code get_all_from_file (pointer output, int *output_len)
version = IPV4_VERSION;
switch(flag){
case BOTH_GW_AND_DEV:
sscanf(buff,"%*s%*s%*s%*s%s%*s%s%*s%d",gateway,dev, &metric);
sscanf(buff,"%*s%*s%*s%*s%20s%*s%20s%*s%6d",gateway,dev, &metric);
break;
case ONLY_GW:
sscanf(buff,"%*s%*s%*s%*s%s%*s%d",gateway, &metric);
sscanf(buff,"%*s%*s%*s%*s%20s%*s%6d",gateway, &metric);
break;
case ONLY_DEV:
sscanf(buff,"%*s%*s%*s%*s%s%*s%d",dev, &metric);
sscanf(buff,"%*s%*s%*s%*s%20s%*s%6d",dev, &metric);
break;
default:
if(buff_total)
@ -957,13 +956,13 @@ ret_code get_all_from_file (pointer output, int *output_len)
version = IPV4_VERSION;
switch(flag){
case BOTH_GW_AND_DEV:
sscanf(buff,"%*s%*s%*s %[^/]/%d%*s%s%*s%s%*s%d",destip,&netmask,gateway,dev, &metric);
sscanf(buff,"%*s%*s%*s %20[^/]/%4d%*s%20s%*s%20s%*s%6d",destip,&netmask,gateway,dev, &metric);
break;
case ONLY_GW:
sscanf(buff,"%*s%*s%*s %[^/]/%d%*s%s%*s%d",destip,&netmask,gateway,&metric);
sscanf(buff,"%*s%*s%*s %20[^/]/%4d%*s%20s%*s%6d",destip,&netmask,gateway,&metric);
break;
case ONLY_DEV:
sscanf(buff,"%*s%*s%*s %[^/]/%d%*s%s%*s%d",destip,&netmask,dev,&metric);
sscanf(buff,"%*s%*s%*s %20[^/]/%4d%*s%20s%*s%6d",destip,&netmask,dev,&metric);
break;
default:
if(buff_total)
@ -986,7 +985,6 @@ ret_code get_all_from_file (pointer output, int *output_len)
count ++;
version = 0;
memset(destip,0,IP_MAX_LENGTH);
netmask = 0;
memset(gateway,0,IP_MAX_LENGTH);
@ -1112,7 +1110,6 @@ ret_code routing_config_chk(uint source, uint *config_type,
routing_t routing_buff = {0};
routing_t *conf_buff = &routing_buff;
ret_code ret = RET_OK;
int code = 0;
ret = routing_json_parse(input,config_type,conf_buff);
@ -1275,7 +1272,7 @@ ret_code routing_config_get_all(uint source,
rpc_log_info("in function getall\n");
int ret = RET_OK;
ret_code ret = RET_OK;
*output_len = 0;
ret = get_all_from_file(output,output_len);
@ -1344,9 +1341,8 @@ ret_code all_routing_get_all(uint source,
ret_code ret = RET_OK;
routing_t *conf_buff;
int count = 0;
int ipv4_number = 0;
int ipv6_number = 0;
int status;
//int ipv4_number = 0;
//int ipv6_number = 0;
char temp_buff[LINE_MAX_LENGTH] = {0};
char destip[IP_MAX_LENGTH] = {0};
char gateway[IP_MAX_LENGTH] = {0};
@ -1384,7 +1380,7 @@ ret_code all_routing_get_all(uint source,
memset(temp_buff,0,sizeof(temp_buff));
}
sscanf(temp_buff,"%s %s %s %*s %d %*s %*s %s",destip,gateway,netmask,&metric,dev);
sscanf(temp_buff,"%20s %20s %20s %*s %6d %*s %*s %20s",destip,gateway,netmask,&metric,dev);
inet_aton(netmask,&addr);
netmask_int = ip_masklen(addr);
conf_buff[count].version = 4;
@ -1395,7 +1391,7 @@ ret_code all_routing_get_all(uint source,
conf_buff[count].metric = metric;
count ++;
ipv4_number++;
//ipv4_number++;
memset(destip,0,IP_MAX_LENGTH);
memset(netmask,0,IP_MAX_LENGTH);
@ -1436,13 +1432,13 @@ ret_code all_routing_get_all(uint source,
continue;
}
sscanf(temp_buff,"%[^/]/%d %s %*s %d %*s %*s %s",destip,&netmask_int,gateway,&metric,dev);
sscanf(temp_buff,"%20[^/]/%4d %22s %*s %6d %*s %*s %20s",destip,&netmask_int,gateway,&metric,dev);
rpc_log_info("check 5 after sscanf\n");
rpc_log_info("check 6: destip %s gateway %s netmask %d metric %d dev %s\n",destip,gateway,netmask_int,metric,dev);
if(metric > 0)
{
sscanf(gateway,"[%[^]]",gateway_new);
sscanf(gateway,"[%20[^]]",gateway_new);
conf_buff[count].version = 6;
if (strcmp(destip,"[::]") == 0)
{
@ -1458,7 +1454,7 @@ ret_code all_routing_get_all(uint source,
conf_buff[count].metric = metric;
count ++;
ipv6_number++;
//ipv6_number++;
memset(destip,0,IP_MAX_LENGTH);
memset(netmask,0,IP_MAX_LENGTH);