MOD aaa-12 桥接口自测问题解决
SOL 桥接口自测问题解决 修改人:zhangliang 检视人:zhangliang
This commit is contained in:
parent
b201b3d7d6
commit
521782246c
|
@ -92,22 +92,22 @@
|
||||||
NULL \
|
NULL \
|
||||||
},\
|
},\
|
||||||
{\
|
{\
|
||||||
BRIF_CONFIG, \
|
BRIF_CONFIG, \
|
||||||
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
|
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
|
||||||
FALSE, \
|
FALSE, \
|
||||||
br_if_config_chk, \
|
br_if_config_chk, \
|
||||||
br_if_config_proc, \
|
br_if_config_proc, \
|
||||||
br_if_config_get, \
|
br_if_config_get, \
|
||||||
br_if_config_get_all \
|
br_if_config_get_all \
|
||||||
},\
|
},\
|
||||||
{\
|
{\
|
||||||
BRFDB_CONFIG, \
|
BRFDB_CONFIG, \
|
||||||
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
|
CONFIG_FROM_WEB|CONFIG_FROM_NETOPEER, \
|
||||||
FALSE, \
|
FALSE, \
|
||||||
br_fdb_config_chk, \
|
br_fdb_config_chk, \
|
||||||
NULL, \
|
NULL, \
|
||||||
br_fdb_config_get, \
|
br_fdb_config_get, \
|
||||||
NULL \
|
NULL \
|
||||||
},\
|
},\
|
||||||
{\
|
{\
|
||||||
USER_MANAGER_CONFIG_GROUP, \
|
USER_MANAGER_CONFIG_GROUP, \
|
||||||
|
|
|
@ -201,19 +201,28 @@ ret_code br_save_file(BR_EVENT_TYPE event_type,
|
||||||
if_conf_file_del(br_name);
|
if_conf_file_del(br_name);
|
||||||
break;
|
break;
|
||||||
case BR_IF_JOIN_EVENT:
|
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)
|
if(strstr(config_str, port_name) != NULL)
|
||||||
{
|
{
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
del_sub_string(config_str, "\n");
|
||||||
strcat(config_str, " ");
|
strcat(config_str, " ");
|
||||||
strcat(config_str, port_name);
|
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);
|
if_conf_file_set(br_name, key_str, config_str);
|
||||||
break;
|
break;
|
||||||
case BR_IF_LEAVE_EVENT:
|
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)
|
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;
|
int port_num = 0;
|
||||||
|
|
||||||
json_obj = cJSON_Parse(input);
|
json_obj = cJSON_Parse(input);
|
||||||
if(!json_obj)
|
ASSERT_PTR(json_obj, RET_NULLP);
|
||||||
{
|
|
||||||
return RET_INPUTERR;
|
|
||||||
}
|
|
||||||
|
|
||||||
rpc_log_info("json input:\n %s\n", cJSON_Print(json_obj));
|
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;
|
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);
|
s2j_struct_get_string_element(br_fdb_conf, json_obj, br_name, BR_NAMSIZ);
|
||||||
|
|
||||||
*conf_type = br_fdb_conf->config_type;
|
*conf_type = br_fdb_conf->config_type;
|
||||||
|
|
|
@ -247,7 +247,7 @@ int get_br_from_port(char *port_name , char *br_name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(br_fd <0){
|
if(br_fd <0){
|
||||||
printf("netlink_socket failed\n");
|
rpc_log_error("netlink_socket failed\n");
|
||||||
return RET_SYSERR;
|
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 ifinfomsg *ifi = NLMSG_DATA(&answer.n);
|
||||||
struct rtattr *tb[IFLA_MAX+1];
|
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);
|
ifi->ifi_family,ifi->ifi_index);
|
||||||
|
|
||||||
|
|
||||||
int len = answer.n.nlmsg_len - NLMSG_LENGTH(sizeof (struct ifinfomsg));
|
int len = answer.n.nlmsg_len - NLMSG_LENGTH(sizeof (struct ifinfomsg));
|
||||||
parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
|
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]),
|
(char *)RTA_DATA(tb[IFLA_IFNAME]),
|
||||||
*(int *)RTA_DATA(tb[IFLA_MTU]),
|
*(int *)RTA_DATA(tb[IFLA_MTU]),
|
||||||
*(int *)RTA_DATA(tb[IFLA_TXQLEN]));
|
*(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]) {
|
if (tb[IFLA_MASTER]) {
|
||||||
int master = rta_getattr_u32(tb[IFLA_MASTER]);
|
int master = rta_getattr_u32(tb[IFLA_MASTER]);
|
||||||
char if_name[INTERFACE_NAMSIZ] = {0};
|
char if_name[INTERFACE_NAMSIZ] = {0};
|
||||||
|
|
||||||
if_indextoname(master, if_name);
|
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)
|
if(br_get_bridge_info(if_name, NULL) == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -249,10 +249,18 @@ next_while:
|
||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
/* 整个配置块都没有,则新创建该配置块 */
|
|
||||||
if( next_flag == FALSE )
|
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);
|
remove(conf_path);
|
||||||
|
@ -545,7 +553,7 @@ next_while:
|
||||||
if( next_flag == FALSE )
|
if( next_flag == FALSE )
|
||||||
{
|
{
|
||||||
strcat(sum_buf, conf_buff);
|
strcat(sum_buf, conf_buff);
|
||||||
strcat(sum_buf, "\n\n");
|
strcat(sum_buf, "\n");
|
||||||
remove(conf_path);
|
remove(conf_path);
|
||||||
|
|
||||||
return conf_file_write(conf_path, sum_buf);
|
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);
|
return conf_value_in_block_exist(IFCONFIG_PATH, auto_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*添加修改文件(当配置文件中存在标记字段,则进行修改,若不存在则进行添加)
|
*添加修改文件(当配置文件中存在标记字段,则进行修改,若不存在则进行添加)
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue