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 \ 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, \

View File

@ -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;

View File

@ -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)
{ {

View File

@ -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);
} }
/* /*
* *
* *