diff --git a/Platform/user/configm/config-server/include/ipconfig.h b/Platform/user/configm/config-server/include/ipconfig.h index cd71cfa95..4a23fcb1f 100644 --- a/Platform/user/configm/config-server/include/ipconfig.h +++ b/Platform/user/configm/config-server/include/ipconfig.h @@ -91,7 +91,7 @@ typedef struct _if_v4addr_str v4addr_str; struct _if_v6addr_str { char addr[DOT_IPV6_STR]; - int prefixlen; + char prefixlen[IF_INFO_STR]; }; typedef struct _if_v6addr_str v6addr_str; diff --git a/Platform/user/configm/config-server/netconfig/ifconfig.c b/Platform/user/configm/config-server/netconfig/ifconfig.c index 2e702bd84..baa87ce24 100644 --- a/Platform/user/configm/config-server/netconfig/ifconfig.c +++ b/Platform/user/configm/config-server/netconfig/ifconfig.c @@ -134,13 +134,13 @@ ret_code if_get_v4proto(if_info_t *if_info) if_conf_file_get(if_info->ifname, iface, protostr); - if(strstr(protostr, "static")) + if(strstr(protostr, "dhcp")) { - strcpy(if_info->v4protocol, "static"); + strcpy(if_info->v4protocol, "dhcp"); } else { - strcpy(if_info->v4protocol, "dhcp"); + strcpy(if_info->v4protocol, "static"); } return RET_OK; @@ -156,13 +156,13 @@ ret_code if_get_v6proto(if_info_t *if_info) if_conf_file_get(if_info->ifname, iface, protostr); - if(strstr(protostr, "static")) + if(strstr(protostr, "dhcp")) { - strcpy(if_info->v6protocol, "static"); + strcpy(if_info->v6protocol, "dhcp"); } else { - strcpy(if_info->v6protocol, "dhcp"); + strcpy(if_info->v6protocol, "static"); } return RET_OK; @@ -401,7 +401,8 @@ ret_code if_del_oldin6(char *name, struct in6_ifreq *ifr6) for(i = 0; i < addr_cnt; i++) { - if(IPV6_ADDR_CMP(&(ifr6->ifr6_addr), &(ipv6_arr[i].addr)) == 0) + if(IPV6_ADDR_CMP(&(ifr6->ifr6_addr), &(ipv6_arr[i].addr)) == 0 + && ifr6->ifr6_prefixlen == ipv6_arr[i].prefixlen) { ret = RET_EXIST; continue; @@ -508,11 +509,11 @@ int if_get_prefix6(if_info_t *if_conf) for(i = 0; i < addr_cnt && i < IPV6_ADDR_NUM; i++) { - inet_ntop(AF_INET6, &ipv6_arr[i].addr, if_conf->ipv6[addr_cnt].addr, DOT_IPV6_STR); - if_conf->ipv6[addr_cnt].prefixlen = ipv6_arr[i].prefixlen; + inet_ntop(AF_INET6, &ipv6_arr[i].addr, if_conf->ipv6[i].addr, DOT_IPV6_STR); + snprintf(if_conf->ipv6[i].prefixlen, IF_INFO_STR, "%d", ipv6_arr[i].prefixlen); } - return addr_cnt; + return i; } diff --git a/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c b/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c index 401e84386..1fc10f65c 100644 --- a/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c +++ b/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c @@ -194,7 +194,7 @@ cJSON *ipv6_format_json(if_info_t *config_buff, int v6_cnt) s2j_create_json_obj(json_ipv6); s2j_json_set_basic_element(json_ipv6, if_ipv6, string, addr); - s2j_json_set_basic_element(json_ipv6, if_ipv6, int, prefixlen); + s2j_json_set_basic_element(json_ipv6, if_ipv6, string, prefixlen); cJSON_AddItemToArray(json_array, json_ipv6); } @@ -249,35 +249,33 @@ ret_code if_get_info(if_info_t *if_info, int *v6_cnt) ret_code ret = RET_OK; ret = if_get_ipenable(if_info); - ASSERT_RET(ret); + ASSERT_RET_NO(ret); ret = if_get_v4proto(if_info); - ASSERT_RET(ret); + ASSERT_RET_NO(ret); ret = if_get_v6proto(if_info); - ASSERT_RET(ret); + ASSERT_RET_NO(ret); ret = if_get_hwaddr(if_info); - ASSERT_RET(ret); + ASSERT_RET_NO(ret); - ret = if_get_maxspeed(if_info); - //ASSERT_RET(ret); + if_get_maxspeed(if_info); ret = if_get_linkstat(if_info); - ASSERT_RET(ret); + ASSERT_RET_NO(ret); ret = if_get_prefix(if_info); - ASSERT_RET(ret); + ASSERT_RET_NO(ret); ret = if_read_stats_file(if_info); - ASSERT_RET(ret); + ASSERT_RET_NO(ret); *v6_cnt = if_get_prefix6(if_info); - return ret; + return RET_OK; } - ret_code ip_config_v4chk(uint config_type, ip_config_t *ip_conf) { ret_code ret = RET_OK; @@ -547,6 +545,10 @@ ret_code ip_config_get_all(uint source, pointer output, int *output_len) for(i = 0; i < if_count; i++) { + if(strcmp(ifreq[i].ifr_name, "lo") == 0) + { + continue; + } rpc_log_info("get interface %s info\n", ifreq[i].ifr_name); strncpy(if_info[i].ifname, ifreq[i].ifr_name, INTERFACE_NAMSIZ - 1);