MOD aaa-12 解决无法获取到所有接口的ip的问题
SOL 解决无法获取到所有接口的ip的问题 修改人:zhangliang 检视人:zhangliang
This commit is contained in:
parent
cc3ee11af5
commit
bd4ce0677b
|
@ -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);
|
ip_conf = rpc_new0(ip_config_t, MAX_IF_NUM);
|
||||||
if(ip_conf == NULL)
|
if(ip_conf == NULL)
|
||||||
{
|
{
|
||||||
return RET_NOMEM;
|
return RET_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i = 0; i < if_count; i++)
|
for(i = 0; i < if_count; i++)
|
||||||
{
|
{
|
||||||
rpc_log_info("get interface %s info\n", ifreq[i].ifr_name);
|
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;
|
|
||||||
|
|
||||||
memset(&netmask, 0, sizeof(netmask));
|
strncpy(ip_conf[i].ifname, ifreq[i].ifr_name, INTERFACE_NAMSIZ - 1);
|
||||||
strncpy(netmask.ifr_name, ifreq[i].ifr_name, sizeof(netmask.ifr_name) - 1);
|
ip_conf[i].family = AF_INET;
|
||||||
|
|
||||||
ret = if_ioctl(SIOCGIFNETMASK, (caddr_t)&netmask, &mask_ret);
|
if_get_prefix(&ip_conf[i], code);
|
||||||
ASSERT_RET_NO(ret);
|
|
||||||
|
|
||||||
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);
|
ip_config_format_json_array(ip_conf, if_count, output, output_len);
|
||||||
|
|
Loading…
Reference in New Issue