Skip to content

Commit

Permalink
Tools: hv: Gather DHCP information
Browse files Browse the repository at this point in the history
Collect information on dhcp setting for the specified interface.
We invoke an external (Distro specific)  script to get this information.

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>
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed Sep 10, 2012
1 parent 2aea3c7 commit c050372
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions tools/hv/hv_kvp_daemon.c
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,9 @@ static void kvp_get_ipconfig_info(char *if_name,
struct hv_kvp_ipaddr_value *buffer)
{
char cmd[512];
char dhcp_info[128];
char *p;
FILE *file;

/*
* Get the address of default gateway (ipv4).
Expand Down Expand Up @@ -572,6 +575,34 @@ static void kvp_get_ipconfig_info(char *if_name,
*/
kvp_process_ipconfig_file(cmd, (char *)buffer->dns_addr,
(MAX_IP_ADDR_SIZE * 2), INET_ADDRSTRLEN, 0);

/*
* Gather the DHCP state.
* We will gather this state by invoking an external script.
* The parameter to the script is the interface name.
* Here is the expected output:
*
* Enabled: DHCP enabled.
*/

sprintf(cmd, "%s %s", "hv_get_dhcp_info", if_name);

file = popen(cmd, "r");
if (file == NULL)
return;

p = fgets(dhcp_info, sizeof(dhcp_info), file);
if (p == NULL) {
pclose(file);
return;
}

if (!strncmp(p, "Enabled", 7))
buffer->dhcp_enabled = 1;
else
buffer->dhcp_enabled = 0;

pclose(file);
}


Expand Down

0 comments on commit c050372

Please sign in to comment.