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