summaryrefslogtreecommitdiffstats
path: root/core/java/android/net/Proxy.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/net/Proxy.java')
-rw-r--r--core/java/android/net/Proxy.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/core/java/android/net/Proxy.java b/core/java/android/net/Proxy.java
index 23a3ea8..21c485e 100644
--- a/core/java/android/net/Proxy.java
+++ b/core/java/android/net/Proxy.java
@@ -299,15 +299,18 @@ public final class Proxy {
final URI uri = URI.create(url);
final String host = uri.getHost();
if (host != null) {
- // 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]")) {
+ if (host.equalsIgnoreCase("localhost")) {
return true;
}
+ // Check we have a numeric address so we don't cause a DNS lookup in getByName.
+ if (InetAddress.isNumeric(host)) {
+ if (InetAddress.getByName(host).isLoopbackAddress()) {
+ return true;
+ }
+ }
}
+ } catch (UnknownHostException ignored) {
+ // Can't happen for a numeric address (InetAddress.getByName).
} catch (IllegalArgumentException iex) {
// Ignore (URI.create)
}