Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9fc5843f authored by Hugo Benichi's avatar Hugo Benichi Committed by android-build-merger
Browse files

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

am: 7261fb27

* commit '7261fb27':
  Some fixes in ConnectivityService event logging

Change-Id: I0ca861a1d35eb6cdb5490d04a725d64465eebc31
parents d8a8ea1e 7261fb27
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;
+14 −15
Original line number Diff line number Diff line
@@ -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);
    }
};
+22 −20
Original line number Diff line number Diff line
@@ -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();

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

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