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

am: 923ef69ae7

Change-Id: I82eb06ee1f9d69a1a3ccb5208947bdfcdbba6d81
This commit is contained in:
Hugo Benichi
2017-04-12 09:50:05 +00:00
committed by android-build-merger

View File

@@ -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,13 +717,8 @@ public class NetworkMonitor extends StateMachine {
} }
} }
if (pacUrl == null) { if ((pacUrl == null) && (httpUrl == null || httpsUrl == null)) {
httpsUrl = makeURL(getCaptivePortalServerHttpsUrl(mContext)); return CaptivePortalProbeResult.FAILED;
httpUrl = makeURL(getCaptivePortalServerHttpUrl(mContext));
fallbackUrl = makeURL(getCaptivePortalFallbackUrl(mContext));
if (httpUrl == null || httpsUrl == null) {
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();