Tools: hv: Gather subnet information
Now, gather sub-net information for the specified interface. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0d5b6b197f
commit
0440578459
1 changed files with 29 additions and 2 deletions
|
@ -534,6 +534,7 @@ kvp_get_ip_address(int family, char *if_name, int op,
|
||||||
struct ifaddrs *ifap;
|
struct ifaddrs *ifap;
|
||||||
struct ifaddrs *curp;
|
struct ifaddrs *curp;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
int sn_offset = 0;
|
||||||
const char *str;
|
const char *str;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
char *buffer;
|
char *buffer;
|
||||||
|
@ -594,12 +595,38 @@ kvp_get_ip_address(int family, char *if_name, int op,
|
||||||
* Gather info other than the IP address.
|
* Gather info other than the IP address.
|
||||||
* IP address info will be gathered later.
|
* IP address info will be gathered later.
|
||||||
*/
|
*/
|
||||||
if (curp->ifa_addr->sa_family == AF_INET)
|
if (curp->ifa_addr->sa_family == AF_INET) {
|
||||||
ip_buffer->addr_family |= ADDR_FAMILY_IPV4;
|
ip_buffer->addr_family |= ADDR_FAMILY_IPV4;
|
||||||
else
|
/*
|
||||||
|
* Get subnet info.
|
||||||
|
*/
|
||||||
|
error = kvp_process_ip_address(
|
||||||
|
curp->ifa_netmask,
|
||||||
|
AF_INET,
|
||||||
|
(char *)
|
||||||
|
ip_buffer->sub_net,
|
||||||
|
length,
|
||||||
|
&sn_offset);
|
||||||
|
if (error)
|
||||||
|
goto gather_ipaddr;
|
||||||
|
} else {
|
||||||
ip_buffer->addr_family |= ADDR_FAMILY_IPV6;
|
ip_buffer->addr_family |= ADDR_FAMILY_IPV6;
|
||||||
|
/*
|
||||||
|
* Get subnet info.
|
||||||
|
*/
|
||||||
|
error = kvp_process_ip_address(
|
||||||
|
curp->ifa_netmask,
|
||||||
|
AF_INET6,
|
||||||
|
(char *)
|
||||||
|
ip_buffer->sub_net,
|
||||||
|
length,
|
||||||
|
&sn_offset);
|
||||||
|
if (error)
|
||||||
|
goto gather_ipaddr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gather_ipaddr:
|
||||||
error = kvp_process_ip_address(curp->ifa_addr,
|
error = kvp_process_ip_address(curp->ifa_addr,
|
||||||
curp->ifa_addr->sa_family,
|
curp->ifa_addr->sa_family,
|
||||||
buffer,
|
buffer,
|
||||||
|
|
Loading…
Reference in a new issue