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:
Erik Kline
2016-04-14 10:20:17 +00:00
committed by android-build-merger
2 changed files with 41 additions and 14 deletions

View File

@@ -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));
}
};

View File

@@ -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);
}
}