Merge changes Ia71865a9,I40b6de54 into nyc-dev
* changes: Log an event whenever we lose the default network. Record the transport types for connectivity events.
This commit is contained in:
@@ -25,18 +25,30 @@ import android.os.Parcelable;
|
||||
public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implements Parcelable {
|
||||
public static final String TAG = "ConnectivityServiceChangeEvent";
|
||||
|
||||
private int mNetId;
|
||||
// The ID of the network that has become the new default or NETID_UNSET if none.
|
||||
private final int mNetId;
|
||||
// The ID of the network that was the default before or NETID_UNSET if none.
|
||||
private final int mPrevNetId;
|
||||
// The list of transport types of the new default network, for example TRANSPORT_WIFI, as
|
||||
// defined in NetworkCapabilities.java.
|
||||
private final int[] mTransportTypes;
|
||||
|
||||
public ConnectivityServiceChangeEvent(int netId) {
|
||||
public ConnectivityServiceChangeEvent(int netId, int prevNetId, int[] transportTypes) {
|
||||
mNetId = netId;
|
||||
mPrevNetId = prevNetId;
|
||||
mTransportTypes = transportTypes;
|
||||
}
|
||||
|
||||
public ConnectivityServiceChangeEvent(Parcel in) {
|
||||
mNetId = in.readInt();
|
||||
mPrevNetId = in.readInt();
|
||||
mTransportTypes = in.createIntArray();
|
||||
}
|
||||
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mNetId);
|
||||
out.writeInt(mPrevNetId);
|
||||
out.writeIntArray(mTransportTypes);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR
|
||||
@@ -50,8 +62,8 @@ public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implemen
|
||||
}
|
||||
};
|
||||
|
||||
public static void logEvent(int netId) {
|
||||
public static void logEvent(int netId, int prevNetId, int[] transportTypes) {
|
||||
IpConnectivityEvent.logEvent(IpConnectivityEvent.IPCE_CONSRV_DEFAULT_NET_CHANGE,
|
||||
new ConnectivityServiceChangeEvent(netId));
|
||||
new ConnectivityServiceChangeEvent(netId, prevNetId, transportTypes));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2206,6 +2206,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
mLegacyTypeTracker.remove(nai, wasDefault);
|
||||
rematchAllNetworksAndRequests(null, 0);
|
||||
if (wasDefault && getDefaultNetwork() == null) {
|
||||
// Log that we lost the default network and there is no replacement.
|
||||
final int[] transportTypes = new int[0];
|
||||
ConnectivityServiceChangeEvent.logEvent(NETID_UNSET, nai.network.netId,
|
||||
transportTypes);
|
||||
}
|
||||
if (nai.created) {
|
||||
// Tell netd to clean up the configuration for this network
|
||||
// (routing rules, DNS, etc).
|
||||
@@ -4427,9 +4433,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
teardownUnneededNetwork(oldNetwork);
|
||||
}
|
||||
|
||||
private void makeDefault(NetworkAgentInfo newNetwork) {
|
||||
private void makeDefault(NetworkAgentInfo newNetwork, NetworkAgentInfo prevNetwork) {
|
||||
int prevNetId = (prevNetwork == null) ? NETID_UNSET : prevNetwork.network.netId;
|
||||
if (DBG) log("Switching to new default network: " + newNetwork);
|
||||
ConnectivityServiceChangeEvent.logEvent(newNetwork.network.netId);
|
||||
setupDataActivityTracking(newNetwork);
|
||||
try {
|
||||
mNetd.setDefaultNetId(newNetwork.network.netId);
|
||||
@@ -4440,6 +4446,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
|
||||
updateTcpBufferSizes(newNetwork);
|
||||
setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
|
||||
ConnectivityServiceChangeEvent.logEvent(newNetwork.network.netId, prevNetId,
|
||||
newNetwork.networkCapabilities.getTransportTypes());
|
||||
}
|
||||
|
||||
// Handles a network appearing or improving its score.
|
||||
@@ -4590,7 +4598,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
if (isNewDefault) {
|
||||
// Notify system services that this network is up.
|
||||
makeDefault(newNetwork);
|
||||
makeDefault(newNetwork, oldDefaultNetwork);
|
||||
synchronized (ConnectivityService.this) {
|
||||
// have a new default network, release the transition wakelock in
|
||||
// a second if it's held. The second pause is to allow apps
|
||||
|
||||
Reference in New Issue
Block a user