Use new NetworkUtils.numericToInetAddress.

Fetches an InetAddress without danger of an accidental dns lookup.

Change-Id: Ic0ca48cdd06bbbf6f0fb2cd4ae7832dde451ccae
This commit is contained in:
Robert Greenwalt
2011-02-22 15:56:45 -08:00
parent 0ba170c979
commit c9bc99b246

View File

@@ -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;
} }