Merge "Up our DNS server support from 2 > 4"

This commit is contained in:
Robert Greenwalt
2013-01-11 15:37:46 -08:00
committed by Android (Google) Code Review
2 changed files with 26 additions and 13 deletions

View File

@@ -18,6 +18,7 @@ package android.net;
import android.os.Parcelable; import android.os.Parcelable;
import android.os.Parcel; import android.os.Parcel;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import java.net.InetAddress; import java.net.InetAddress;
@@ -211,11 +212,13 @@ public class DhcpResults implements Parcelable {
} }
public boolean addDns(String addrString) { public boolean addDns(String addrString) {
try { if (TextUtils.isEmpty(addrString) == false) {
linkProperties.addDns(NetworkUtils.numericToInetAddress(addrString)); try {
} catch (IllegalArgumentException e) { linkProperties.addDns(NetworkUtils.numericToInetAddress(addrString));
Log.e(TAG, "addDns failed with addrString " + addrString); } catch (IllegalArgumentException e) {
return true; Log.e(TAG, "addDns failed with addrString " + addrString);
return true;
}
} }
return false; return false;
} }

View File

@@ -28,23 +28,21 @@ int ifc_enable(const char *ifname);
int ifc_disable(const char *ifname); int ifc_disable(const char *ifname);
int ifc_reset_connections(const char *ifname, int reset_mask); 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 *ipaddr,
const char *gateway, const char *gateway,
uint32_t *prefixLength, uint32_t *prefixLength,
const char *dns1, const char *dns[],
const char *dns2,
const char *server, const char *server,
uint32_t *lease, uint32_t *lease,
const char *vendorInfo, const char *vendorInfo,
const char *domains); 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 *ipaddr,
const char *gateway, const char *gateway,
uint32_t *prefixLength, uint32_t *prefixLength,
const char *dns1, const char *dns[],
const char *dns2,
const char *server, const char *server,
uint32_t *lease, uint32_t *lease,
const char *vendorInfo, const char *vendorInfo,
@@ -120,6 +118,9 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
char gateway[PROPERTY_VALUE_MAX]; char gateway[PROPERTY_VALUE_MAX];
char dns1[PROPERTY_VALUE_MAX]; char dns1[PROPERTY_VALUE_MAX];
char dns2[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]; char server[PROPERTY_VALUE_MAX];
uint32_t lease; uint32_t lease;
char vendorInfo[PROPERTY_VALUE_MAX]; char vendorInfo[PROPERTY_VALUE_MAX];
@@ -130,10 +131,10 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
if (renew) { if (renew) {
result = ::dhcp_do_request_renew(nameStr, ipaddr, gateway, &prefixLength, result = ::dhcp_do_request_renew(nameStr, ipaddr, gateway, &prefixLength,
dns1, dns2, server, &lease, vendorInfo, domains); dns, server, &lease, vendorInfo, domains);
} else { } else {
result = ::dhcp_do_request(nameStr, ipaddr, gateway, &prefixLength, result = ::dhcp_do_request(nameStr, ipaddr, gateway, &prefixLength,
dns1, dns2, server, &lease, vendorInfo, domains); dns, server, &lease, vendorInfo, domains);
} }
env->ReleaseStringUTFChars(ifname, nameStr); env->ReleaseStringUTFChars(ifname, nameStr);
if (result == 0) { if (result == 0) {
@@ -168,6 +169,15 @@ static jboolean android_net_utils_runDhcpCommon(JNIEnv* env, jobject clazz, jstr
result = env->CallBooleanMethod(dhcpResults, result = env->CallBooleanMethod(dhcpResults,
dhcpResultsFieldIds.addDns, env->NewStringUTF(dns2)); 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) { if (result == 0) {