diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2010-06-15 11:33:39 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2010-06-15 11:33:39 -0700 |
commit | 1adbb607d2b6a74b7871a8cecd7c5690c8c5cf6d (patch) | |
tree | ece22e4ebf99b2be3b9663d5e8da763c86e6975a /libnetutils/dhcp_utils.c | |
parent | 2ef569417d1136f9dcb8c2bbc6e3c3c59c4ea28d (diff) | |
parent | 177e78efe60e1ed127e38a97c2a424d4aa1ef536 (diff) | |
download | system_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.c | 14 |
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); |