Merge "Ensure all NetworkMonitor messages store the netId in arg2."
This commit is contained in:
@@ -645,8 +645,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
* Event for NetworkMonitor to inform ConnectivityService that the probe status has changed.
|
||||
* Both of the arguments are bitmasks, and the value of bits come from
|
||||
* INetworkMonitor.NETWORK_VALIDATION_PROBE_*.
|
||||
* arg1 = A bitmask to describe which probes are completed.
|
||||
* arg2 = A bitmask to describe which probes are successful.
|
||||
* arg1 = unused
|
||||
* arg2 = netId
|
||||
* obj = A Pair of integers: the bitmasks of, respectively, completed and successful probes.
|
||||
*/
|
||||
public static final int EVENT_PROBE_STATUS_CHANGED = 45;
|
||||
|
||||
@@ -3602,19 +3603,21 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
|
||||
private boolean maybeHandleNetworkMonitorMessage(Message msg) {
|
||||
final int netId = msg.arg2;
|
||||
final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(netId);
|
||||
switch (msg.what) {
|
||||
default:
|
||||
return false;
|
||||
case EVENT_PROBE_STATUS_CHANGED: {
|
||||
final Integer netId = (Integer) msg.obj;
|
||||
final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(netId);
|
||||
if (nai == null) {
|
||||
break;
|
||||
}
|
||||
final int probesCompleted = ((Pair<Integer, Integer>) msg.obj).first;
|
||||
final int probesSucceeded = ((Pair<Integer, Integer>) msg.obj).second;
|
||||
final boolean probePrivateDnsCompleted =
|
||||
((msg.arg1 & NETWORK_VALIDATION_PROBE_PRIVDNS) != 0);
|
||||
((probesCompleted & NETWORK_VALIDATION_PROBE_PRIVDNS) != 0);
|
||||
final boolean privateDnsBroken =
|
||||
((msg.arg2 & NETWORK_VALIDATION_PROBE_PRIVDNS) == 0);
|
||||
((probesSucceeded & NETWORK_VALIDATION_PROBE_PRIVDNS) == 0);
|
||||
if (probePrivateDnsCompleted) {
|
||||
if (nai.networkCapabilities.isPrivateDnsBroken() != privateDnsBroken) {
|
||||
nai.networkCapabilities.setPrivateDnsBroken(privateDnsBroken);
|
||||
@@ -3641,7 +3644,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
case EVENT_NETWORK_TESTED: {
|
||||
final NetworkTestedResults results = (NetworkTestedResults) msg.obj;
|
||||
|
||||
final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(results.mNetId);
|
||||
if (nai == null) break;
|
||||
|
||||
handleNetworkTested(nai, results.mTestResult,
|
||||
@@ -3649,9 +3651,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
break;
|
||||
}
|
||||
case EVENT_PROVISIONING_NOTIFICATION: {
|
||||
final int netId = msg.arg2;
|
||||
final boolean visible = toBool(msg.arg1);
|
||||
final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(netId);
|
||||
// If captive portal status has changed, update capabilities or disconnect.
|
||||
if (nai != null && (visible != nai.lastCaptivePortalDetected)) {
|
||||
nai.lastCaptivePortalDetected = visible;
|
||||
@@ -3685,14 +3685,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
break;
|
||||
}
|
||||
case EVENT_PRIVATE_DNS_CONFIG_RESOLVED: {
|
||||
final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(msg.arg2);
|
||||
if (nai == null) break;
|
||||
|
||||
updatePrivateDns(nai, (PrivateDnsConfig) msg.obj);
|
||||
break;
|
||||
}
|
||||
case EVENT_CAPPORT_DATA_CHANGED: {
|
||||
final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(msg.arg2);
|
||||
if (nai == null) break;
|
||||
handleCapportApiDataUpdate(nai, (CaptivePortalData) msg.obj);
|
||||
break;
|
||||
@@ -3832,6 +3830,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
// the same looper so messages will be processed in sequence.
|
||||
final Message msg = mTrackerHandler.obtainMessage(
|
||||
EVENT_NETWORK_TESTED,
|
||||
0, mNetId,
|
||||
new NetworkTestedResults(
|
||||
mNetId, p.result, p.timestampMillis, p.redirectUrl));
|
||||
mTrackerHandler.sendMessage(msg);
|
||||
@@ -3869,7 +3868,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
public void notifyProbeStatusChanged(int probesCompleted, int probesSucceeded) {
|
||||
mTrackerHandler.sendMessage(mTrackerHandler.obtainMessage(
|
||||
EVENT_PROBE_STATUS_CHANGED,
|
||||
probesCompleted, probesSucceeded, new Integer(mNetId)));
|
||||
0, mNetId, new Pair<>(probesCompleted, probesSucceeded)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user