Use new NetworkUtils.numericToInetAddress.
Fetches an InetAddress without danger of an accidental dns lookup. Change-Id: Ic0ca48cdd06bbbf6f0fb2cd4ae7832dde451ccae
This commit is contained in:
@@ -402,52 +402,48 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int validateIpConfigFields(LinkProperties linkProperties) {
|
private int validateIpConfigFields(LinkProperties linkProperties) {
|
||||||
|
String ipAddr = mIpAddressView.getText().toString();
|
||||||
|
InetAddress inetAddr = null;
|
||||||
try {
|
try {
|
||||||
String ipAddr = mIpAddressView.getText().toString();
|
inetAddr = NetworkUtils.numericToInetAddress(ipAddr);
|
||||||
if (!InetAddress.isNumeric(ipAddr)) {
|
} catch (IllegalArgumentException e) {
|
||||||
return R.string.wifi_ip_settings_invalid_ip_address;
|
return R.string.wifi_ip_settings_invalid_ip_address;
|
||||||
}
|
}
|
||||||
InetAddress inetAddr = InetAddress.getByName(ipAddr);
|
|
||||||
|
|
||||||
int networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText()
|
int networkPrefixLength = -1;
|
||||||
.toString());
|
try {
|
||||||
if (networkPrefixLength < 0 || networkPrefixLength > 32) {
|
networkPrefixLength = Integer.parseInt(mNetworkPrefixLengthView.getText().toString());
|
||||||
return R.string.wifi_ip_settings_invalid_network_prefix_length;
|
} catch (NumberFormatException e) { }
|
||||||
}
|
if (networkPrefixLength < 0 || networkPrefixLength > 32) {
|
||||||
|
return R.string.wifi_ip_settings_invalid_network_prefix_length;
|
||||||
|
}
|
||||||
|
linkProperties.addLinkAddress(new LinkAddress(inetAddr, networkPrefixLength));
|
||||||
|
|
||||||
linkProperties.addLinkAddress(new LinkAddress(inetAddr, networkPrefixLength));
|
String gateway = mGatewayView.getText().toString();
|
||||||
|
InetAddress gatewayAddr = null;
|
||||||
|
try {
|
||||||
|
gatewayAddr = NetworkUtils.numericToInetAddress(gateway);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
return R.string.wifi_ip_settings_invalid_gateway;
|
||||||
|
}
|
||||||
|
linkProperties.addGateway(gatewayAddr);
|
||||||
|
|
||||||
String gateway = mGatewayView.getText().toString();
|
String dns = mDns1View.getText().toString();
|
||||||
if (!InetAddress.isNumeric(gateway)) {
|
InetAddress dnsAddr = null;
|
||||||
return R.string.wifi_ip_settings_invalid_gateway;
|
try {
|
||||||
}
|
dnsAddr = NetworkUtils.numericToInetAddress(dns);
|
||||||
InetAddress gatewayAddr;
|
} catch (IllegalArgumentException e) {
|
||||||
|
return R.string.wifi_ip_settings_invalid_dns;
|
||||||
|
}
|
||||||
|
linkProperties.addDns(dnsAddr);
|
||||||
|
if (mDns2View.length() > 0) {
|
||||||
|
dns = mDns2View.getText().toString();
|
||||||
try {
|
try {
|
||||||
gatewayAddr = InetAddress.getByName(gateway);
|
dnsAddr = NetworkUtils.numericToInetAddress(dns);
|
||||||
} catch (UnknownHostException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
return R.string.wifi_ip_settings_invalid_gateway;
|
|
||||||
}
|
|
||||||
linkProperties.addGateway(gatewayAddr);
|
|
||||||
|
|
||||||
String dns = mDns1View.getText().toString();
|
|
||||||
if (!InetAddress.isNumeric(dns)) {
|
|
||||||
return R.string.wifi_ip_settings_invalid_dns;
|
return R.string.wifi_ip_settings_invalid_dns;
|
||||||
}
|
}
|
||||||
linkProperties.addDns(InetAddress.getByName(dns));
|
linkProperties.addDns(dnsAddr);
|
||||||
if (mDns2View.length() > 0) {
|
|
||||||
dns = mDns2View.getText().toString();
|
|
||||||
if (!InetAddress.isNumeric(dns)) {
|
|
||||||
return R.string.wifi_ip_settings_invalid_dns;
|
|
||||||
}
|
|
||||||
linkProperties.addDns(InetAddress.getByName(dns));
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (NumberFormatException ignore) {
|
|
||||||
return R.string.wifi_ip_settings_invalid_network_prefix_length;
|
|
||||||
} catch (UnknownHostException e) {
|
|
||||||
//Should not happen since we have already validated addresses
|
|
||||||
Log.e(TAG, "Failure to validate IP configuration " + e);
|
|
||||||
return R.string.wifi_ip_settings_invalid_ip_address;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user