Merge "Also log IPv4 and IPv6 connectivity of any previous default network" into nyc-dev
am: 0628d32
* commit '0628d324d0f1c2116c051faadd8e4bf26206b1a6':
Also log IPv4 and IPv6 connectivity of any previous default network
Change-Id: Ibcbd79a6674cf062138ccbd031d14721b0367e22
This commit is contained in:
@@ -27,28 +27,38 @@ public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implemen
|
||||
|
||||
// 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;
|
||||
// The ID of the network that was the default before or NETID_UNSET if none.
|
||||
private final int mPrevNetId;
|
||||
// Whether the previous network had IPv4/IPv6 connectivity.
|
||||
private final boolean mPrevIPv4;
|
||||
private final boolean mPrevIPv6;
|
||||
|
||||
public ConnectivityServiceChangeEvent(int netId, int prevNetId, int[] transportTypes) {
|
||||
public ConnectivityServiceChangeEvent(int netId, int[] transportTypes,
|
||||
int prevNetId, boolean prevIPv4, boolean prevIPv6) {
|
||||
mNetId = netId;
|
||||
mPrevNetId = prevNetId;
|
||||
mTransportTypes = transportTypes;
|
||||
mPrevNetId = prevNetId;
|
||||
mPrevIPv4 = prevIPv4;
|
||||
mPrevIPv6 = prevIPv6;
|
||||
}
|
||||
|
||||
public ConnectivityServiceChangeEvent(Parcel in) {
|
||||
mNetId = in.readInt();
|
||||
mPrevNetId = in.readInt();
|
||||
mTransportTypes = in.createIntArray();
|
||||
mPrevNetId = in.readInt();
|
||||
mPrevIPv4 = (in.readByte() > 0);
|
||||
mPrevIPv6 = (in.readByte() > 0);
|
||||
}
|
||||
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mNetId);
|
||||
out.writeInt(mPrevNetId);
|
||||
out.writeIntArray(mTransportTypes);
|
||||
out.writeInt(mPrevNetId);
|
||||
out.writeByte(mPrevIPv4 ? (byte) 1 : (byte) 0);
|
||||
out.writeByte(mPrevIPv6 ? (byte) 1 : (byte) 0);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR
|
||||
@@ -62,8 +72,10 @@ public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implemen
|
||||
}
|
||||
};
|
||||
|
||||
public static void logEvent(int netId, int prevNetId, int[] transportTypes) {
|
||||
public static void logEvent(int netId, int[] transportTypes,
|
||||
int prevNetId, boolean prevIPv4, boolean prevIPv6) {
|
||||
IpConnectivityEvent.logEvent(IpConnectivityEvent.IPCE_CONSRV_DEFAULT_NET_CHANGE,
|
||||
new ConnectivityServiceChangeEvent(netId, prevNetId, transportTypes));
|
||||
new ConnectivityServiceChangeEvent(
|
||||
netId, transportTypes, prevNetId, prevIPv4, prevIPv6));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2208,9 +2208,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
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);
|
||||
logConnectivityServiceChangeEvent(null, nai);
|
||||
}
|
||||
if (nai.created) {
|
||||
// Tell netd to clean up the configuration for this network
|
||||
@@ -4434,7 +4432,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
|
||||
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);
|
||||
setupDataActivityTracking(newNetwork);
|
||||
try {
|
||||
@@ -4446,8 +4443,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());
|
||||
|
||||
logConnectivityServiceChangeEvent(newNetwork, prevNetwork);
|
||||
}
|
||||
|
||||
// Handles a network appearing or improving its score.
|
||||
@@ -5068,4 +5065,22 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
NetworkAgentInfo nai, NetworkRequest defaultRequest) {
|
||||
return new NetworkMonitor(context, handler, nai, defaultRequest);
|
||||
}
|
||||
|
||||
private static void logConnectivityServiceChangeEvent(
|
||||
NetworkAgentInfo next, NetworkAgentInfo prev) {
|
||||
final int newNetId = (next == null) ? NETID_UNSET : next.network.netId;
|
||||
final int[] newTransportTypes = (next == null)
|
||||
? new int[0]
|
||||
: next.networkCapabilities.getTransportTypes();
|
||||
|
||||
final int oldNetId = (prev == null) ? NETID_UNSET : prev.network.netId;
|
||||
final boolean hadIPv4 = (prev != null) &&
|
||||
prev.linkProperties.hasIPv4Address() &&
|
||||
prev.linkProperties.hasIPv4DefaultRoute();
|
||||
final boolean hadIPv6 = (prev != null) &&
|
||||
prev.linkProperties.hasGlobalIPv6Address() &&
|
||||
prev.linkProperties.hasIPv6DefaultRoute();
|
||||
ConnectivityServiceChangeEvent.logEvent(newNetId, newTransportTypes,
|
||||
oldNetId, hadIPv4, hadIPv6);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user