Merge "Don't perform DNS lookup in android.net.Proxy.isLocalHost"

This commit is contained in:
Brad Fitzpatrick
2010-10-10 11:15:27 -07:00
committed by Android Code Review

View File

@ -24,9 +24,7 @@ import android.os.SystemProperties;
import android.provider.Settings; import android.provider.Settings;
import android.util.Log; import android.util.Log;
import java.net.InetAddress;
import java.net.URI; import java.net.URI;
import java.net.UnknownHostException;
import junit.framework.Assert; import junit.framework.Assert;
@ -162,15 +160,15 @@ final public class Proxy {
final URI uri = URI.create(url); final URI uri = URI.create(url);
final String host = uri.getHost(); final String host = uri.getHost();
if (host != null) { if (host != null) {
if (host.equalsIgnoreCase("localhost")) { // TODO: InetAddress.isLoopbackAddress should be used to check
return true; // for localhost. However no public factory methods exist which
} // can be used without triggering DNS lookup if host is not localhost.
if (InetAddress.getByName(host).isLoopbackAddress()) { if (host.equalsIgnoreCase("localhost") ||
host.equals("127.0.0.1") ||
host.equals("[::1]")) {
return true; return true;
} }
} }
} catch (UnknownHostException uex) {
// Ignore (INetworkSystem.ipStringToByteArray)
} catch (IllegalArgumentException iex) { } catch (IllegalArgumentException iex) {
// Ignore (URI.create) // Ignore (URI.create)
} }