Merge "Some fixes in ConnectivityService event logging" into nyc-dev

This commit is contained in:
Hugo Benichi
2016-04-21 04:02:54 +00:00
committed by Android (Google) Code Review
3 changed files with 37 additions and 36 deletions

View File

@@ -26033,11 +26033,11 @@ package android.net.metrics {
field public final int state;
}
public final class ConnectivityServiceChangeEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable {
public final class DefaultNetworkEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable {
method public int describeContents();
method public static void logEvent(int, int[], int, boolean, boolean);
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.net.metrics.ConnectivityServiceChangeEvent> CREATOR;
field public static final android.os.Parcelable.Creator<android.net.metrics.DefaultNetworkEvent> CREATOR;
field public final int netId;
field public final boolean prevIPv4;
field public final boolean prevIPv6;

View File

@@ -24,8 +24,7 @@ import android.os.Parcelable;
* {@hide}
*/
@SystemApi
public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent
implements Parcelable {
public final class DefaultNetworkEvent extends IpConnectivityEvent implements Parcelable {
// The ID of the network that has become the new default or NETID_UNSET if none.
public final int netId;
// The list of transport types of the new default network, for example TRANSPORT_WIFI, as
@@ -37,7 +36,7 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent
public final boolean prevIPv4;
public final boolean prevIPv6;
private ConnectivityServiceChangeEvent(int netId, int[] transportTypes,
private DefaultNetworkEvent(int netId, int[] transportTypes,
int prevNetId, boolean prevIPv4, boolean prevIPv6) {
this.netId = netId;
this.transportTypes = transportTypes;
@@ -46,7 +45,7 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent
this.prevIPv6 = prevIPv6;
}
private ConnectivityServiceChangeEvent(Parcel in) {
private DefaultNetworkEvent(Parcel in) {
this.netId = in.readInt();
this.transportTypes = in.createIntArray();
this.prevNetId = in.readInt();
@@ -66,21 +65,21 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent
return 0;
}
public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR
= new Parcelable.Creator<ConnectivityServiceChangeEvent>() {
public ConnectivityServiceChangeEvent createFromParcel(Parcel in) {
return new ConnectivityServiceChangeEvent(in);
public static final Parcelable.Creator<DefaultNetworkEvent> CREATOR
= new Parcelable.Creator<DefaultNetworkEvent>() {
public DefaultNetworkEvent createFromParcel(Parcel in) {
return new DefaultNetworkEvent(in);
}
public ConnectivityServiceChangeEvent[] newArray(int size) {
return new ConnectivityServiceChangeEvent[size];
public DefaultNetworkEvent[] newArray(int size) {
return new DefaultNetworkEvent[size];
}
};
public static void logEvent(int netId, int[] transportTypes,
int prevNetId, boolean prevIPv4, boolean prevIPv6) {
logEvent(IPCE_CONSRV_DEFAULT_NET_CHANGE,
new ConnectivityServiceChangeEvent(
netId, transportTypes, prevNetId, prevIPv4, prevIPv6));
public static void logEvent(
int netId, int[] transports, int prevNetId, boolean hadIPv4, boolean hadIPv6) {
final DefaultNetworkEvent ev =
new DefaultNetworkEvent(netId, transports, prevNetId, hadIPv4, hadIPv6);
logEvent(IPCE_CONSRV_DEFAULT_NET_CHANGE, ev);
}
};

View File

@@ -71,7 +71,7 @@ import android.net.ProxyInfo;
import android.net.RouteInfo;
import android.net.UidRange;
import android.net.Uri;
import android.net.metrics.ConnectivityServiceChangeEvent;
import android.net.metrics.DefaultNetworkEvent;
import android.os.Binder;
import android.os.Build;
import android.os.Bundle;
@@ -2217,7 +2217,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.
logConnectivityServiceChangeEvent(null, nai);
logDefaultNetworkEvent(null, nai);
}
if (nai.created) {
// Tell netd to clean up the configuration for this network
@@ -4452,8 +4452,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
updateTcpBufferSizes(newNetwork);
setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
logConnectivityServiceChangeEvent(newNetwork, prevNetwork);
logDefaultNetworkEvent(newNetwork, prevNetwork);
}
// Handles a network appearing or improving its score.
@@ -5075,21 +5074,24 @@ public class ConnectivityService extends IConnectivityManager.Stub
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();
private static void logDefaultNetworkEvent(NetworkAgentInfo newNai, NetworkAgentInfo prevNai) {
int newNetid = NETID_UNSET;
int prevNetid = NETID_UNSET;
int[] transports = new int[0];
boolean hadIPv4 = false;
boolean hadIPv6 = false;
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);
if (newNai != null) {
newNetid = newNai.network.netId;
transports = newNai.networkCapabilities.getTransportTypes();
}
if (prevNai != null) {
prevNetid = prevNai.network.netId;
final LinkProperties lp = prevNai.linkProperties;
hadIPv4 = lp.hasIPv4Address() && lp.hasIPv4DefaultRoute();
hadIPv6 = lp.hasGlobalIPv6Address() && lp.hasIPv6DefaultRoute();
}
DefaultNetworkEvent.logEvent(newNetid, transports, prevNetid, hadIPv4, hadIPv6);
}
}