MOD aaa-12 桥接口自测问题解决

SOL  桥接口自测问题解决
修改人:zhangliang
检视人:zhangliang
This commit is contained in:
zhanglianghy 2019-08-06 17:18:36 +08:00
parent b201b3d7d6
commit 521782246c
4 changed files with 43 additions and 29 deletions

View File

@ -92,22 +92,22 @@
NULL \
},\
{\
BRIF_CONFIG, \
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
FALSE, \
br_if_config_chk, \
br_if_config_proc, \
br_if_config_get, \
br_if_config_get_all \
BRIF_CONFIG, \
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
FALSE, \
br_if_config_chk, \
br_if_config_proc, \
br_if_config_get, \
br_if_config_get_all \
},\
{\
BRFDB_CONFIG, \
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
FALSE, \
br_fdb_config_chk, \
NULL, \
br_fdb_config_get, \
NULL \
BRFDB_CONFIG, \
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
FALSE, \
br_fdb_config_chk, \
NULL, \
br_fdb_config_get, \
NULL \
},\
{\
USER_MANAGER_CONFIG_GROUP, \

View File

@ -201,19 +201,28 @@ ret_code br_save_file(BR_EVENT_TYPE event_type,
if_conf_file_del(br_name);
break;
case BR_IF_JOIN_EVENT:
if(if_conf_file_get(br_name, key_str, config_str) == RET_OK)
if(if_conf_file_get(br_name, key_str, config_str) == RET_OK
&& (strlen(config_str) != 0))
{
if(strstr(config_str, port_name) != NULL)
{
return RET_OK;
}
del_sub_string(config_str, "\n");
strcat(config_str, " ");
strcat(config_str, port_name);
strcat(config_str, "\n");
}
else
{
snprintf(config_str, IF_BUFF_LEN - 1, "%s %s\n", key_str, port_name);
}
if_conf_file_set(br_name, key_str, config_str);
break;
case BR_IF_LEAVE_EVENT:
if(if_conf_file_get(br_name, key_str, config_str) == RET_OK)
if(if_conf_file_get(br_name, key_str, config_str) == RET_OK
&& (strlen(config_str) != 0))
{
if(strstr(config_str, port_name) != NULL)
{
@ -913,10 +922,7 @@ ret_code br_fdb_config_json_parse(pointer input, uint *conf_type, br_fdb_config_
int port_num = 0;
json_obj = cJSON_Parse(input);
if(!json_obj)
{
return RET_INPUTERR;
}
ASSERT_PTR(json_obj, RET_NULLP);
rpc_log_info("json input:\n %s\n", cJSON_Print(json_obj));
@ -928,6 +934,7 @@ ret_code br_fdb_config_json_parse(pointer input, uint *conf_type, br_fdb_config_
return RET_NOMEM;
}
s2j_struct_get_basic_element(br_fdb_conf, json_obj, int, config_type);
s2j_struct_get_string_element(br_fdb_conf, json_obj, br_name, BR_NAMSIZ);
*conf_type = br_fdb_conf->config_type;

View File

@ -247,7 +247,7 @@ int get_br_from_port(char *port_name , char *br_name)
}
if(br_fd <0){
printf("netlink_socket failed\n");
rpc_log_error("netlink_socket failed\n");
return RET_SYSERR;
}
@ -258,26 +258,26 @@ int get_br_from_port(char *port_name , char *br_name)
struct ifinfomsg *ifi = NLMSG_DATA(&answer.n);
struct rtattr *tb[IFLA_MAX+1];
printf("struct ifinfomsg: ifi_family=%u,ifi_index=%d\n",
rpc_log_info("struct ifinfomsg: ifi_family=%u,ifi_index=%d\n",
ifi->ifi_family,ifi->ifi_index);
int len = answer.n.nlmsg_len - NLMSG_LENGTH(sizeof (struct ifinfomsg));
parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
printf("enum : IFLA_IFNAME=%s,IFLA_MTU=%d,IFLA_TXQLEN=%d\n",
rpc_log_info("enum : IFLA_IFNAME=%s,IFLA_MTU=%d,IFLA_TXQLEN=%d\n",
(char *)RTA_DATA(tb[IFLA_IFNAME]),
*(int *)RTA_DATA(tb[IFLA_MTU]),
*(int *)RTA_DATA(tb[IFLA_TXQLEN]));
printf("if_nametoindex:%d\n",if_nametoindex((char *)RTA_DATA(tb[IFLA_IFNAME])));
rpc_log_info("if_nametoindex:%d\n",if_nametoindex((char *)RTA_DATA(tb[IFLA_IFNAME])));
if (tb[IFLA_MASTER]) {
int master = rta_getattr_u32(tb[IFLA_MASTER]);
char if_name[INTERFACE_NAMSIZ] = {0};
if_indextoname(master, if_name);
printf("master:%s\n", if_name);
rpc_log_info("master:%s\n", if_name);
if(br_get_bridge_info(if_name, NULL) == 0)
{

View File

@ -249,10 +249,18 @@ next_while:
fclose(f);
/* 整个配置块都没有,则新创建该配置块 */
if( next_flag == FALSE )
{
return RET_NOTFOUND;
/* 整个配置块都没有 */
if(start_line == NULL)
{
return RET_NOTFOUND;
}
if(config_line == NULL)
{
strcat(sum_buf, conf_buff);
}
}
remove(conf_path);
@ -545,7 +553,7 @@ next_while:
if( next_flag == FALSE )
{
strcat(sum_buf, conf_buff);
strcat(sum_buf, "\n\n");
strcat(sum_buf, "\n");
remove(conf_path);
return conf_file_write(conf_path, sum_buf);
@ -690,7 +698,6 @@ ret_code if_conf_file_exist(char *if_name, char *conf_buff)
return conf_value_in_block_exist(IFCONFIG_PATH, auto_str);
}
/*
*
*