OSDN Git Service

In CaptiviePortalTracker a socket timeout is probably a captive portal.
authorWink Saville <wink@google.com>
Fri, 2 Aug 2013 18:25:23 +0000 (11:25 -0700)
committerThe Android Automerger <android-build@android.com>
Thu, 8 Aug 2013 23:58:55 +0000 (16:58 -0700)
On a AT&T warm SIM a socket is not possible so a timeout occurs.
In CheckMp a timing out on a socket is declared as a "warm" sim,
make CaptivePortalTracker the same.

Bug: 10038362
Change-Id: Icb9fb0a1b67704dc9adf6a6348a3781fb9582a89

core/java/android/net/CaptivePortalTracker.java

index 21995c0..2f1eb8d 100644 (file)
@@ -42,6 +42,7 @@ import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.InetAddress;
 import java.net.Inet4Address;
+import java.net.SocketTimeoutException;
 import java.net.URL;
 import java.net.UnknownHostException;
 
@@ -52,7 +53,7 @@ import com.android.internal.R;
  * @hide
  */
 public class CaptivePortalTracker extends StateMachine {
-    private static final boolean DBG = false;
+    private static final boolean DBG = true;
     private static final String TAG = "CaptivePortalTracker";
 
     private static final String DEFAULT_SERVER = "clients3.google.com";
@@ -337,6 +338,9 @@ public class CaptivePortalTracker extends StateMachine {
             urlConnection.getInputStream();
             // we got a valid response, but not from the real google
             return urlConnection.getResponseCode() != 204;
+        } catch (SocketTimeoutException e) {
+            if (DBG) log("Probably a portal: exception " + e);
+            return true;
         } catch (IOException e) {
             if (DBG) log("Probably not a portal: exception " + e);
             return false;