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

Commit 808f0399 authored by Paul Hu's avatar Paul Hu Committed by Android (Google) Code Review
Browse files

Merge "Add logging for VPN connection events" into main

parents 11ad5223 a22e926b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4773,6 +4773,11 @@ public class Vpn {
            pw.increaseIndent();
            mEventChanges.reverseDump(pw);
            pw.decreaseIndent();

            if (mVpnConnectivityMetrics != null) {
                pw.println();
                mVpnConnectivityMetrics.dump(pw);
            }
        }
    }

+22 −0
Original line number Diff line number Diff line
@@ -34,6 +34,8 @@ import android.net.LinkAddress;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.VpnManager;
import android.util.IndentingPrintWriter;
import android.util.LocalLog;
import android.util.Log;
import android.util.SparseArray;
import android.util.SparseIntArray;
@@ -56,6 +58,8 @@ import java.util.List;
 */
public class VpnConnectivityMetrics {
    private static final String TAG = VpnConnectivityMetrics.class.getSimpleName();
    private static final int MAX_LOG_RECORDS = 100;
    private final LocalLog mMetricLogs = new LocalLog(MAX_LOG_RECORDS);
    // Copied from corenetworking platform vpn enum
    @VisibleForTesting
    static final int VPN_TYPE_UNKNOWN = 0;
@@ -454,6 +458,14 @@ public class VpnConnectivityMetrics {

    private void validateAndReportVpnConnectionEvent(boolean connected) {
        validateAndCorrectMetrics();
        mMetricLogs.log("Report VPN connection event: " + (connected ? "CONNECTED" : "DISCONNECTED")
                + ", vpnType=" + mVpnType
                + ", vpnProfileType=" + mVpnProfileType
                + ", underlyingNetworkTypes=" + Arrays.toString(mUnderlyingNetworkTypes)
                + ", vpnNetworkIpProtocol=" + mVpnNetworkIpProtocol
                + ", serverIpProtocol=" + mServerIpProtocol
                + ", allowedAlgorithms=" + mAllowedAlgorithms
                + ", mtu=" + mMtu);
        mDependencies.statsWrite(
                mVpnType,
                mVpnNetworkIpProtocol,
@@ -501,4 +513,14 @@ public class VpnConnectivityMetrics {
        mMtu = 0;
        mUnderlyingNetworkTypes = new int[0];
    }

    /**
     * Dumps the local log buffer.
     */
    public void dump(IndentingPrintWriter pw) {
        pw.println("VpnConnectivityMetrics logs (most recent first):");
        pw.increaseIndent();
        mMetricLogs.reverseDump(pw);
        pw.decreaseIndent();
    }
}