summaryrefslogtreecommitdiffstats
path: root/libnetutils/dhcp_utils.c
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2010-06-15 11:33:39 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2010-06-15 11:33:39 -0700
commit1adbb607d2b6a74b7871a8cecd7c5690c8c5cf6d (patch)
treeece22e4ebf99b2be3b9663d5e8da763c86e6975a /libnetutils/dhcp_utils.c
parent2ef569417d1136f9dcb8c2bbc6e3c3c59c4ea28d (diff)
parent177e78efe60e1ed127e38a97c2a424d4aa1ef536 (diff)
downloadsystem_core-1adbb607d2b6a74b7871a8cecd7c5690c8c5cf6d.zip
system_core-1adbb607d2b6a74b7871a8cecd7c5690c8c5cf6d.tar.gz
system_core-1adbb607d2b6a74b7871a8cecd7c5690c8c5cf6d.tar.bz2
merge from open-source master
Change-Id: I8cfc9c0b699eceef77a905ca2f8cbdb1ab06bf1d
Diffstat (limited to 'libnetutils/dhcp_utils.c')
-rw-r--r--libnetutils/dhcp_utils.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libnetutils/dhcp_utils.c b/libnetutils/dhcp_utils.c
index 0f8a6c4..cb0960f 100644
--- a/libnetutils/dhcp_utils.c
+++ b/libnetutils/dhcp_utils.c
@@ -115,6 +115,14 @@ static void fill_ip_info(const char *interface,
}
}
+static const char *ipaddr_to_string(in_addr_t addr)
+{
+ struct in_addr in_addr;
+
+ in_addr.s_addr = addr;
+ return inet_ntoa(in_addr);
+}
+
/*
* Start the dhcp client daemon, and wait for it to finish
* configuring the interface.
@@ -165,7 +173,13 @@ int dhcp_do_request(const char *interface,
return -1;
}
if (strcmp(prop_value, "ok") == 0) {
+ char dns_prop_name[PROPERTY_KEY_MAX];
fill_ip_info(interface, ipaddr, gateway, mask, dns1, dns2, server, lease);
+ /* copy the dhcp.XXX.dns properties to net.XXX.dns */
+ snprintf(dns_prop_name, sizeof(dns_prop_name), "net.%s.dns1", interface);
+ property_set(dns_prop_name, *dns1 ? ipaddr_to_string(*dns1) : "");
+ snprintf(dns_prop_name, sizeof(dns_prop_name), "net.%s.dns2", interface);
+ property_set(dns_prop_name, *dns2 ? ipaddr_to_string(*dns2) : "");
return 0;
} else {
snprintf(errmsg, sizeof(errmsg), "DHCP result was %s", prop_value);