summaryrefslogtreecommitdiffstats
path: root/core/jni
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2013-01-11 15:41:28 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2013-01-11 15:41:28 -0800
commit66900f1d17a264e2ad1d8b36be4ac38eee6617b1 (patch)
treeac8cf5576b33ccf4476165c189d5eecb9139e6b6 /core/jni
parent24716eb147e2458ad3f6efb72597f2465b4cf71d (diff)
parenta268ba51f77527585363e48aec1be45b9ec97061 (diff)
downloadframeworks_base-66900f1d17a264e2ad1d8b36be4ac38eee6617b1.zip
frameworks_base-66900f1d17a264e2ad1d8b36be4ac38eee6617b1.tar.gz
frameworks_base-66900f1d17a264e2ad1d8b36be4ac38eee6617b1.tar.bz2
am a268ba51: Merge "Up our DNS server support from 2 > 4"
* commit 'a268ba51f77527585363e48aec1be45b9ec97061': Up our DNS server support from 2 > 4
Diffstat (limited to 'core/jni')
-rw-r--r--core/jni/android_net_NetUtils.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/core/jni/android_net_NetUtils.cpp b/core/jni/android_net_NetUtils.cpp
index 296add3..f5f22b2 100644
--- a/core/jni/android_net_NetUtils.cpp
+++ b/core/jni/android_net_NetUtils.cpp
@@ -28,23 +28,21 @@ int ifc_enable(const char *ifname);
int ifc_disable(const char *ifname);
int ifc_reset_connections(const char *ifname, int reset_mask);
-int dhcp_do_request(const char *ifname,
+int dhcp_do_request(const char * const ifname,
const char *ipaddr,
const char *gateway,
uint32_t *prefixLength,
- const char *dns1,
- const char *dns2,
+ const char *dns[],
const char *server,
uint32_t *lease,
const char *vendorInfo,
const char *domains);
-int dhcp_do_request_renew(const char *ifname,
+int dhcp_do_request_renew(const char * const ifname,
const char *ipaddr,
const char *gateway,
uint32_t *prefixLength,
- const char *dns1,
- const char *dns2,
+ const char *dns[],
const char *server,
uint32_t *lease,
const char *vendorInfo,
@@ -120,6 +118,9 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
char gateway[PROPERTY_VALUE_MAX];
char dns1[PROPERTY_VALUE_MAX];
char dns2[PROPERTY_VALUE_MAX];
+ char dns3[PROPERTY_VALUE_MAX];
+ char dns4[PROPERTY_VALUE_MAX];
+ const char *dns[5] = {dns1, dns2, dns3, dns4, NULL};
char server[PROPERTY_VALUE_MAX];
uint32_t lease;
char vendorInfo[PROPERTY_VALUE_MAX];
@@ -130,10 +131,10 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
if (renew) {
result = ::dhcp_do_request_renew(nameStr, ipaddr, gateway, &prefixLength,
- dns1, dns2, server, &lease, vendorInfo, domains);
+ dns, server, &lease, vendorInfo, domains);
} else {
result = ::dhcp_do_request(nameStr, ipaddr, gateway, &prefixLength,
- dns1, dns2, server, &lease, vendorInfo, domains);
+ dns, server, &lease, vendorInfo, domains);
}
env->ReleaseStringUTFChars(ifname, nameStr);
if (result == 0) {
@@ -168,6 +169,15 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
result = env->CallBooleanMethod(dhcpResults,
dhcpResultsFieldIds.addDns, env->NewStringUTF(dns2));
+
+ if (result == 0) {
+ result = env->CallBooleanMethod(dhcpResults,
+ dhcpResultsFieldIds.addDns, env->NewStringUTF(dns3));
+ if (result == 0) {
+ result = env->CallBooleanMethod(dhcpResults,
+ dhcpResultsFieldIds.addDns, env->NewStringUTF(dns4));
+ }
+ }
}
if (result == 0) {