diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index ede2b3ae01ec4..8d11c661e5a4d 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -34,6 +34,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; @@ -184,7 +185,7 @@ public class IpManager extends StateMachine { } private void log(String msg) { - mLocalLog.log(PREFIX + msg); + mLog.log(PREFIX + msg); } @Override @@ -399,7 +400,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(); @@ -440,7 +441,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(); @@ -485,7 +486,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); }); } }; @@ -493,7 +494,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); @@ -643,7 +644,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(); @@ -678,7 +679,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); } @@ -703,7 +704,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() { @@ -1065,6 +1066,7 @@ public class IpManager extends StateMachine { mIpReachabilityMonitor = new IpReachabilityMonitor( mContext, mInterfaceName, + mLog, new IpReachabilityMonitor.Callback() { @Override public void notifyLost(InetAddress ip, String logMsg) { diff --git a/services/net/java/android/net/ip/IpReachabilityMonitor.java b/services/net/java/android/net/ip/IpReachabilityMonitor.java index d13449a4c8c67..97c9d82e8e312 100644 --- a/services/net/java/android/net/ip/IpReachabilityMonitor.java +++ b/services/net/java/android/net/ip/IpReachabilityMonitor.java @@ -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();