Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65fa0676 authored by Hugo Benichi's avatar Hugo Benichi Committed by android-build-merger
Browse files

Merge "Captive portal: fix probe urls at network creation"

am: 923ef69a

Change-Id: I82eb06ee1f9d69a1a3ccb5208947bdfcdbba6d81
parents f62b12ae 923ef69a
Loading
Loading
Loading
Loading
+19 −11
Original line number Original line Diff line number Diff line
@@ -259,6 +259,12 @@ public class NetworkMonitor extends StateMachine {
    // This variable is set before transitioning to the mCaptivePortalState.
    // This variable is set before transitioning to the mCaptivePortalState.
    private CaptivePortalProbeResult mLastPortalProbeResult = CaptivePortalProbeResult.FAILED;
    private CaptivePortalProbeResult mLastPortalProbeResult = CaptivePortalProbeResult.FAILED;


    // Configuration values for captive portal detection probes.
    private final String mCaptivePortalUserAgent;
    private final URL mCaptivePortalHttpsUrl;
    private final URL mCaptivePortalHttpUrl;
    private final URL mCaptivePortalFallbackUrl;

    public NetworkMonitor(Context context, Handler handler, NetworkAgentInfo networkAgentInfo,
    public NetworkMonitor(Context context, Handler handler, NetworkAgentInfo networkAgentInfo,
            NetworkRequest defaultRequest) {
            NetworkRequest defaultRequest) {
        this(context, handler, networkAgentInfo, defaultRequest, new IpConnectivityLog());
        this(context, handler, networkAgentInfo, defaultRequest, new IpConnectivityLog());
@@ -293,6 +299,11 @@ public class NetworkMonitor extends StateMachine {
        mUseHttps = Settings.Global.getInt(mContext.getContentResolver(),
        mUseHttps = Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.CAPTIVE_PORTAL_USE_HTTPS, 1) == 1;
                Settings.Global.CAPTIVE_PORTAL_USE_HTTPS, 1) == 1;


        mCaptivePortalUserAgent = getCaptivePortalUserAgent(context);
        mCaptivePortalHttpsUrl = makeURL(getCaptivePortalServerHttpsUrl(context));
        mCaptivePortalHttpUrl = makeURL(getCaptivePortalServerHttpUrl(context));
        mCaptivePortalFallbackUrl = makeURL(getCaptivePortalFallbackUrl(context));

        start();
        start();
    }
    }


@@ -676,7 +687,10 @@ public class NetworkMonitor extends StateMachine {
            return new CaptivePortalProbeResult(204);
            return new CaptivePortalProbeResult(204);
        }
        }


        URL pacUrl = null, httpsUrl = null, httpUrl = null, fallbackUrl = null;
        URL pacUrl = null;
        URL httpsUrl = mCaptivePortalHttpsUrl;
        URL httpUrl = mCaptivePortalHttpUrl;
        URL fallbackUrl = mCaptivePortalFallbackUrl;


        // On networks with a PAC instead of fetching a URL that should result in a 204
        // On networks with a PAC instead of fetching a URL that should result in a 204
        // response, we instead simply fetch the PAC script.  This is done for a few reasons:
        // response, we instead simply fetch the PAC script.  This is done for a few reasons:
@@ -703,14 +717,9 @@ public class NetworkMonitor extends StateMachine {
            }
            }
        }
        }


        if (pacUrl == null) {
        if ((pacUrl == null) && (httpUrl == null || httpsUrl == null)) {
            httpsUrl = makeURL(getCaptivePortalServerHttpsUrl(mContext));
            httpUrl = makeURL(getCaptivePortalServerHttpUrl(mContext));
            fallbackUrl = makeURL(getCaptivePortalFallbackUrl(mContext));
            if (httpUrl == null || httpsUrl == null) {
            return CaptivePortalProbeResult.FAILED;
            return CaptivePortalProbeResult.FAILED;
        }
        }
        }


        long startTime = SystemClock.elapsedRealtime();
        long startTime = SystemClock.elapsedRealtime();


@@ -789,9 +798,8 @@ public class NetworkMonitor extends StateMachine {
            urlConnection.setConnectTimeout(SOCKET_TIMEOUT_MS);
            urlConnection.setConnectTimeout(SOCKET_TIMEOUT_MS);
            urlConnection.setReadTimeout(SOCKET_TIMEOUT_MS);
            urlConnection.setReadTimeout(SOCKET_TIMEOUT_MS);
            urlConnection.setUseCaches(false);
            urlConnection.setUseCaches(false);
            final String userAgent = getCaptivePortalUserAgent(mContext);
            if (mCaptivePortalUserAgent != null) {
            if (userAgent != null) {
                urlConnection.setRequestProperty("User-Agent", mCaptivePortalUserAgent);
                urlConnection.setRequestProperty("User-Agent", userAgent);
            }
            }
            // cannot read request header after connection
            // cannot read request header after connection
            String requestHeader = urlConnection.getRequestProperties().toString();
            String requestHeader = urlConnection.getRequestProperties().toString();