diff options
| -rw-r--r-- | packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java | 3 | ||||
| -rw-r--r-- | services/net/java/android/net/dns/ResolvUtil.java | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java index 0e2a0e00192d..91c04fa65e24 100644 --- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java +++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java @@ -321,6 +321,7 @@ public class CaptivePortalLoginActivity extends Activity { // TODO: reuse NetworkMonitor facilities for consistent captive portal detection. new Thread(new Runnable() { public void run() { + final Network network = ResolvUtil.makeNetworkWithPrivateDnsBypass(mNetwork); // Give time for captive portal to open. try { Thread.sleep(1000); @@ -329,7 +330,7 @@ public class CaptivePortalLoginActivity extends Activity { HttpURLConnection urlConnection = null; int httpResponseCode = 500; try { - urlConnection = (HttpURLConnection) mNetwork.openConnection(mUrl); + urlConnection = (HttpURLConnection) network.openConnection(mUrl); urlConnection.setInstanceFollowRedirects(false); urlConnection.setConnectTimeout(SOCKET_TIMEOUT_MS); urlConnection.setReadTimeout(SOCKET_TIMEOUT_MS); diff --git a/services/net/java/android/net/dns/ResolvUtil.java b/services/net/java/android/net/dns/ResolvUtil.java index 97d20f4b2922..a2a6615e5f48 100644 --- a/services/net/java/android/net/dns/ResolvUtil.java +++ b/services/net/java/android/net/dns/ResolvUtil.java @@ -62,4 +62,13 @@ public class ResolvUtil { final long netidForResolv = NETID_USE_LOCAL_NAMESERVERS | (long) network.netId; return new Network((int) netidForResolv); } + + public static Network makeNetworkWithPrivateDnsBypass(Network network) { + return new Network(network) { + @Override + public InetAddress[] getAllByName(String host) throws UnknownHostException { + return blockingResolveAllLocally(network, host); + } + }; + } } |