From 521782246c5d0bca3f362799007545cc573d18f4 Mon Sep 17 00:00:00 2001 From: zhanglianghy Date: Tue, 6 Aug 2019 17:18:36 +0800 Subject: [PATCH] =?UTF-8?q?MOD=20aaa-12=20=E6=A1=A5=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=87=AA=E6=B5=8B=E9=97=AE=E9=A2=98=E8=A7=A3=E5=86=B3=20SOL=20?= =?UTF-8?q?=20=E6=A1=A5=E6=8E=A5=E5=8F=A3=E8=87=AA=E6=B5=8B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E8=A7=A3=E5=86=B3=20=E4=BF=AE=E6=94=B9=E4=BA=BA?= =?UTF-8?q?=EF=BC=9Azhangliang=20=E6=A3=80=E8=A7=86=E4=BA=BA=EF=BC=9Azhang?= =?UTF-8?q?liang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configm/config-server/include/configm.h | 28 +++++++++---------- .../config-server/netconfig/bridge/brconfig.c | 19 +++++++++---- .../netconfig/bridge/brnetlink.c | 10 +++---- .../config-server/netconfig/parsefile.c | 15 +++++++--- 4 files changed, 43 insertions(+), 29 deletions(-) diff --git a/Platform/user/configm/config-server/include/configm.h b/Platform/user/configm/config-server/include/configm.h index 45f66c879..99b645f82 100755 --- a/Platform/user/configm/config-server/include/configm.h +++ b/Platform/user/configm/config-server/include/configm.h @@ -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, \ diff --git a/Platform/user/configm/config-server/netconfig/bridge/brconfig.c b/Platform/user/configm/config-server/netconfig/bridge/brconfig.c index 741d24112..21f36fabf 100644 --- a/Platform/user/configm/config-server/netconfig/bridge/brconfig.c +++ b/Platform/user/configm/config-server/netconfig/bridge/brconfig.c @@ -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; diff --git a/Platform/user/configm/config-server/netconfig/bridge/brnetlink.c b/Platform/user/configm/config-server/netconfig/bridge/brnetlink.c index 35b6f8117..3db9c5658 100644 --- a/Platform/user/configm/config-server/netconfig/bridge/brnetlink.c +++ b/Platform/user/configm/config-server/netconfig/bridge/brnetlink.c @@ -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) { diff --git a/Platform/user/configm/config-server/netconfig/parsefile.c b/Platform/user/configm/config-server/netconfig/parsefile.c index 8ff29a715..635c55d5e 100644 --- a/Platform/user/configm/config-server/netconfig/parsefile.c +++ b/Platform/user/configm/config-server/netconfig/parsefile.c @@ -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); } - /* *添加修改文件(当配置文件中存在标记字段,则进行修改,若不存在则进行添加) *