From bd4ce0677b1eec031441cd762b31fdb408147309 Mon Sep 17 00:00:00 2001 From: zhanglianghy Date: Fri, 16 Aug 2019 10:37:18 +0800 Subject: [PATCH] =?UTF-8?q?MOD=20aaa-12=20=E8=A7=A3=E5=86=B3=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=8E=B7=E5=8F=96=E5=88=B0=E6=89=80=E6=9C=89=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84ip=E7=9A=84=E9=97=AE=E9=A2=98=20SOL=20=20=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E5=88=B0?= =?UTF-8?q?=E6=89=80=E6=9C=89=E6=8E=A5=E5=8F=A3=E7=9A=84ip=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20=E4=BF=AE=E6=94=B9=E4=BA=BA=EF=BC=9Azhangl?= =?UTF-8?q?iang=20=E6=A3=80=E8=A7=86=E4=BA=BA=EF=BC=9Azhangliang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../netconfig/ipconfig/ipconfig.c | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c b/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c index 054354c84..28f433ba0 100644 --- a/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c +++ b/Platform/user/configm/config-server/netconfig/ipconfig/ipconfig.c @@ -327,7 +327,7 @@ ret_code if_get_prefix_all(pointer output, int *output_len, int *code) struct sockaddr_in *addr; struct ifreq netmask; ip_config_t *ip_conf; - struct ifconf ifc; + struct ifconf ifc; int if_count = 0; ret_code ret; int mask_ret; @@ -361,24 +361,18 @@ ret_code if_get_prefix_all(pointer output, int *output_len, int *code) ip_conf = rpc_new0(ip_config_t, MAX_IF_NUM); if(ip_conf == NULL) { - return RET_NOMEM; + return RET_NOMEM; } for(i = 0; i < if_count; i++) - { - rpc_log_info("get interface %s info\n", ifreq[i].ifr_name); - strncpy(ip_conf[i].ifname, ifreq[i].ifr_name, INTERFACE_NAMSIZ - 1); - ip_conf[i].family = AF_INET; - ip_conf[i].prefix = ((struct sockaddr_in *)&(ifreq[i].ifr_addr))->sin_addr; + { + rpc_log_info("get interface %s info\n", ifreq[i].ifr_name); - memset(&netmask, 0, sizeof(netmask)); - strncpy(netmask.ifr_name, ifreq[i].ifr_name, sizeof(netmask.ifr_name) - 1); - - ret = if_ioctl(SIOCGIFNETMASK, (caddr_t)&netmask, &mask_ret); - ASSERT_RET_NO(ret); + strncpy(ip_conf[i].ifname, ifreq[i].ifr_name, INTERFACE_NAMSIZ - 1); + ip_conf[i].family = AF_INET; + + if_get_prefix(&ip_conf[i], code); - addr = ( struct sockaddr_in * )&(netmask.ifr_netmask); - ip_conf[i].prefixlen = ip_masklen(addr->sin_addr); } ip_config_format_json_array(ip_conf, if_count, output, output_len);