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

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

Merge "IpManager: add display name for helpful logging, and Network" am:...

Merge "IpManager: add display name for helpful logging, and Network" am: ed0b030e am: d0c68dec am: 0f779624
am: 72a9c1c1

Change-Id: I23ad8654d0116b5535f74e6e8c31b8d7ea83d5b8
parents e7a7a29d 72a9c1c1
Loading
Loading
Loading
Loading
+16 −7
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@ import android.os.Handler;
import android.system.ErrnoException;
import android.system.ErrnoException;
import android.system.Os;
import android.system.Os;
import android.system.PacketSocketAddress;
import android.system.PacketSocketAddress;
import android.text.TextUtils;
import android.util.Log;
import android.util.Log;
import android.util.LocalLog;
import android.util.LocalLog;


@@ -59,11 +60,14 @@ public class ConnectivityPacketTracker {
    private static final boolean DBG = false;
    private static final boolean DBG = false;
    private static final String MARK_START = "--- START ---";
    private static final String MARK_START = "--- START ---";
    private static final String MARK_STOP = "--- STOP ---";
    private static final String MARK_STOP = "--- STOP ---";
    private static final String MARK_NAMED_START = "--- START (%s) ---";
    private static final String MARK_NAMED_STOP = "--- STOP (%s) ---";


    private final String mTag;
    private final String mTag;
    private final LocalLog mLog;
    private final LocalLog mLog;
    private final BlockingSocketReader mPacketListener;
    private final BlockingSocketReader mPacketListener;
    private boolean mRunning;
    private boolean mRunning;
    private String mDisplayName;


    public ConnectivityPacketTracker(Handler h, NetworkInterface netif, LocalLog log) {
    public ConnectivityPacketTracker(Handler h, NetworkInterface netif, LocalLog log) {
        final String ifname;
        final String ifname;
@@ -85,14 +89,16 @@ public class ConnectivityPacketTracker {
        mPacketListener = new PacketListener(h, ifindex, hwaddr, mtu);
        mPacketListener = new PacketListener(h, ifindex, hwaddr, mtu);
    }
    }


    public void start() {
    public void start(String displayName) {
        mRunning = true;
        mRunning = true;
        mDisplayName = displayName;
        mPacketListener.start();
        mPacketListener.start();
    }
    }


    public void stop() {
    public void stop() {
        mPacketListener.stop();
        mPacketListener.stop();
        mRunning = false;
        mRunning = false;
        mDisplayName = null;
    }
    }


    private final class PacketListener extends BlockingSocketReader {
    private final class PacketListener extends BlockingSocketReader {
@@ -133,16 +139,19 @@ public class ConnectivityPacketTracker {


        @Override
        @Override
        protected void onStart() {
        protected void onStart() {
            mLog.log(MARK_START);
            final String msg = TextUtils.isEmpty(mDisplayName)
                    ? MARK_START
                    : String.format(MARK_NAMED_START, mDisplayName);
            mLog.log(msg);
        }
        }


        @Override
        @Override
        protected void onStop() {
        protected void onStop() {
            if (mRunning) {
            String msg = TextUtils.isEmpty(mDisplayName)
                mLog.log(MARK_STOP);
                    ? MARK_STOP
            } else {
                    : String.format(MARK_NAMED_STOP, mDisplayName);
                mLog.log(MARK_STOP + " (packet listener stopped unexpectedly)");
            if (!mRunning) msg += " (packet listener stopped unexpectedly)";
            }
            mLog.log(msg);
        }
        }


        @Override
        @Override
+22 −4
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ import android.net.IpPrefix;
import android.net.LinkAddress;
import android.net.LinkAddress;
import android.net.LinkProperties.ProvisioningChange;
import android.net.LinkProperties.ProvisioningChange;
import android.net.LinkProperties;
import android.net.LinkProperties;
import android.net.Network;
import android.net.ProxyInfo;
import android.net.ProxyInfo;
import android.net.RouteInfo;
import android.net.RouteInfo;
import android.net.StaticIpConfiguration;
import android.net.StaticIpConfiguration;
@@ -348,6 +349,16 @@ public class IpManager extends StateMachine {
                return this;
                return this;
            }
            }


            public Builder withNetwork(Network network) {
                mConfig.mNetwork = network;
                return this;
            }

            public Builder withDisplayName(String displayName) {
                mConfig.mDisplayName = displayName;
                return this;
            }

            public ProvisioningConfiguration build() {
            public ProvisioningConfiguration build() {
                return new ProvisioningConfiguration(mConfig);
                return new ProvisioningConfiguration(mConfig);
            }
            }
@@ -362,6 +373,8 @@ public class IpManager extends StateMachine {
        /* package */ ApfCapabilities mApfCapabilities;
        /* package */ ApfCapabilities mApfCapabilities;
        /* package */ int mProvisioningTimeoutMs = DEFAULT_TIMEOUT_MS;
        /* package */ int mProvisioningTimeoutMs = DEFAULT_TIMEOUT_MS;
        /* package */ int mIPv6AddrGenMode = INetd.IPV6_ADDR_GEN_MODE_STABLE_PRIVACY;
        /* package */ int mIPv6AddrGenMode = INetd.IPV6_ADDR_GEN_MODE_STABLE_PRIVACY;
        /* package */ Network mNetwork = null;
        /* package */ String mDisplayName = null;


        public ProvisioningConfiguration() {} // used by Builder
        public ProvisioningConfiguration() {} // used by Builder


@@ -374,6 +387,9 @@ public class IpManager extends StateMachine {
            mStaticIpConfig = other.mStaticIpConfig;
            mStaticIpConfig = other.mStaticIpConfig;
            mApfCapabilities = other.mApfCapabilities;
            mApfCapabilities = other.mApfCapabilities;
            mProvisioningTimeoutMs = other.mProvisioningTimeoutMs;
            mProvisioningTimeoutMs = other.mProvisioningTimeoutMs;
            mIPv6AddrGenMode = other.mIPv6AddrGenMode;
            mNetwork = other.mNetwork;
            mDisplayName = other.mDisplayName;
        }
        }


        @Override
        @Override
@@ -388,6 +404,8 @@ public class IpManager extends StateMachine {
                    .add("mApfCapabilities: " + mApfCapabilities)
                    .add("mApfCapabilities: " + mApfCapabilities)
                    .add("mProvisioningTimeoutMs: " + mProvisioningTimeoutMs)
                    .add("mProvisioningTimeoutMs: " + mProvisioningTimeoutMs)
                    .add("mIPv6AddrGenMode: " + mIPv6AddrGenMode)
                    .add("mIPv6AddrGenMode: " + mIPv6AddrGenMode)
                    .add("mNetwork: " + mNetwork)
                    .add("mDisplayName: " + mDisplayName)
                    .toString();
                    .toString();
        }
        }


@@ -1441,10 +1459,10 @@ public class IpManager extends StateMachine {
        @Override
        @Override
        public void enter() {
        public void enter() {
            // Get the Configuration for ApfFilter from Context
            // Get the Configuration for ApfFilter from Context
            boolean filter802_3Frames =
            final boolean filter802_3Frames =
                    mContext.getResources().getBoolean(R.bool.config_apfDrop802_3Frames);
                    mContext.getResources().getBoolean(R.bool.config_apfDrop802_3Frames);


            int[] ethTypeBlackList = mContext.getResources().getIntArray(
            final int[] ethTypeBlackList = mContext.getResources().getIntArray(
                    R.array.config_apfEthTypeBlackList);
                    R.array.config_apfEthTypeBlackList);


            mApfFilter = ApfFilter.maybeCreate(mConfiguration.mApfCapabilities, mNetworkInterface,
            mApfFilter = ApfFilter.maybeCreate(mConfiguration.mApfCapabilities, mNetworkInterface,
@@ -1456,7 +1474,7 @@ public class IpManager extends StateMachine {
            }
            }


            mPacketTracker = createPacketTracker();
            mPacketTracker = createPacketTracker();
            if (mPacketTracker != null) mPacketTracker.start();
            if (mPacketTracker != null) mPacketTracker.start(mConfiguration.mDisplayName);


            if (mConfiguration.mEnableIPv6 && !startIPv6()) {
            if (mConfiguration.mEnableIPv6 && !startIPv6()) {
                doImmediateProvisioningFailure(IpManagerEvent.ERROR_STARTING_IPV6);
                doImmediateProvisioningFailure(IpManagerEvent.ERROR_STARTING_IPV6);
@@ -1470,7 +1488,7 @@ public class IpManager extends StateMachine {
                return;
                return;
            }
            }


            InitialConfiguration config = mConfiguration.mInitialConfig;
            final InitialConfiguration config = mConfiguration.mInitialConfig;
            if ((config != null) && !applyInitialConfig(config)) {
            if ((config != null) && !applyInitialConfig(config)) {
                // TODO introduce a new IpManagerEvent constant to distinguish this error case.
                // TODO introduce a new IpManagerEvent constant to distinguish this error case.
                doImmediateProvisioningFailure(IpManagerEvent.ERROR_INVALID_PROVISIONING);
                doImmediateProvisioningFailure(IpManagerEvent.ERROR_INVALID_PROVISIONING);