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

Commit b6b95424 authored by Erik Kline's avatar Erik Kline Committed by android-build-merger
Browse files

Merge "Switch IpManager and IpReachabilityMonitor to use SharedLog" am: a3ea0e23

am: 59079c2f

Change-Id: I7412970b8dcdab502ba2db7c7ec5be9f07f4bda2
parents 85e63225 59079c2f
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.net.dhcp.DhcpClient;
import android.net.metrics.IpConnectivityLog;
import android.net.metrics.IpManagerEvent;
import android.net.util.MultinetworkPolicyTracker;
import android.net.util.SharedLog;
import android.os.INetworkManagementService;
import android.os.Message;
import android.os.RemoteException;
@@ -187,7 +188,7 @@ public class IpManager extends StateMachine {
        }

        private void log(String msg) {
            mLocalLog.log(PREFIX + msg);
            mLog.log(PREFIX + msg);
        }

        @Override
@@ -414,7 +415,7 @@ public class IpManager extends StateMachine {
    private final WakeupMessage mProvisioningTimeoutAlarm;
    private final WakeupMessage mDhcpActionTimeoutAlarm;
    private final MultinetworkPolicyTracker mMultinetworkPolicyTracker;
    private final LocalLog mLocalLog;
    private final SharedLog mLog;
    private final LocalLog mConnectivityPacketLog;
    private final MessageHandlingLogger mMsgStateLogger;
    private final IpConnectivityLog mMetricsLog = new IpConnectivityLog();
@@ -455,7 +456,7 @@ public class IpManager extends StateMachine {
        mCallback = new LoggingCallbackWrapper(callback);
        mNwService = nwService;

        mLocalLog = new LocalLog(MAX_LOG_RECORDS);
        mLog = new SharedLog(MAX_LOG_RECORDS, mTag);
        mConnectivityPacketLog = new LocalLog(MAX_PACKET_RECORDS);
        mMsgStateLogger = new MessageHandlingLogger();

@@ -500,7 +501,7 @@ public class IpManager extends StateMachine {

            private void logMsg(String msg) {
                Log.d(mTag, msg);
                getHandler().post(() -> { mLocalLog.log("OBSERVED " + msg); });
                getHandler().post(() -> { mLog.log("OBSERVED " + msg); });
            }
        };

@@ -508,7 +509,7 @@ public class IpManager extends StateMachine {
        mLinkProperties.setInterfaceName(mInterfaceName);

        mMultinetworkPolicyTracker = new MultinetworkPolicyTracker(mContext, getHandler(),
                () -> { mLocalLog.log("OBSERVED AvoidBadWifi changed"); });
                () -> { mLog.log("OBSERVED AvoidBadWifi changed"); });

        mProvisioningTimeoutAlarm = new WakeupMessage(mContext, getHandler(),
                mTag + ".EVENT_PROVISIONING_TIMEOUT", EVENT_PROVISIONING_TIMEOUT);
@@ -658,7 +659,7 @@ public class IpManager extends StateMachine {
        pw.println();
        pw.println(mTag + " StateMachine dump:");
        pw.increaseIndent();
        mLocalLog.readOnlyLocalLog().dump(fd, pw, args);
        mLog.dump(fd, pw, args);
        pw.decreaseIndent();

        pw.println();
@@ -693,7 +694,7 @@ public class IpManager extends StateMachine {
                msg.arg1, msg.arg2, Objects.toString(msg.obj), mMsgStateLogger);

        final String richerLogLine = getWhatToString(msg.what) + " " + logLine;
        mLocalLog.log(richerLogLine);
        mLog.log(richerLogLine);
        if (VDBG) {
            Log.d(mTag, richerLogLine);
        }
@@ -717,7 +718,7 @@ public class IpManager extends StateMachine {
    private void logError(String fmt, Object... args) {
        final String msg = "ERROR " + String.format(fmt, args);
        Log.e(mTag, msg);
        mLocalLog.log(msg);
        mLog.log(msg);
    }

    private void getNetworkInterface() {
@@ -1088,6 +1089,7 @@ public class IpManager extends StateMachine {
            mIpReachabilityMonitor = new IpReachabilityMonitor(
                    mContext,
                    mInterfaceName,
                    mLog,
                    new IpReachabilityMonitor.Callback() {
                        @Override
                        public void notifyLost(InetAddress ip, String logMsg) {
+8 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.net.netlink.StructNdaCacheInfo;
import android.net.netlink.StructNdMsg;
import android.net.netlink.StructNlMsgHdr;
import android.net.util.MultinetworkPolicyTracker;
import android.net.util.SharedLog;
import android.os.PowerManager;
import android.os.SystemClock;
import android.system.ErrnoException;
@@ -150,6 +151,7 @@ public class IpReachabilityMonitor {
    private final PowerManager.WakeLock mWakeLock;
    private final String mInterfaceName;
    private final int mInterfaceIndex;
    private final SharedLog mLog;
    private final Callback mCallback;
    private final MultinetworkPolicyTracker mMultinetworkPolicyTracker;
    private final NetlinkSocketObserver mNetlinkSocketObserver;
@@ -221,11 +223,11 @@ public class IpReachabilityMonitor {
        return errno;
    }

    public IpReachabilityMonitor(Context context, String ifName, Callback callback) {
        this(context, ifName, callback, null);
    public IpReachabilityMonitor(Context context, String ifName, SharedLog log, Callback callback) {
        this(context, ifName, log, callback, null);
    }

    public IpReachabilityMonitor(Context context, String ifName, Callback callback,
    public IpReachabilityMonitor(Context context, String ifName, SharedLog log, Callback callback,
            MultinetworkPolicyTracker tracker) throws IllegalArgumentException {
        mInterfaceName = ifName;
        int ifIndex = -1;
@@ -237,6 +239,7 @@ public class IpReachabilityMonitor {
        }
        mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE)).newWakeLock(
                PowerManager.PARTIAL_WAKE_LOCK, TAG + "." + mInterfaceName);
        mLog = log.forSubComponent(TAG);
        mCallback = callback;
        mMultinetworkPolicyTracker = tracker;
        mNetlinkSocketObserver = new NetlinkSocketObserver();
@@ -403,6 +406,8 @@ public class IpReachabilityMonitor {
                break;
            }
            final int returnValue = probeNeighbor(mInterfaceIndex, target);
            mLog.log(String.format("put neighbor %s into NUD_PROBE state (rval=%d)",
                     target.getHostAddress(), returnValue));
            logEvent(IpReachabilityEvent.PROBE, returnValue);
        }
        mLastProbeTimeMs = SystemClock.elapsedRealtime();