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

Commit e8a4cb13 authored by Erik Kline's avatar Erik Kline Committed by Gerrit Code Review
Browse files

Merge "Revert "Send empty LinkProperties when entering StoppedState.""

parents 5557fe3e 652044a7
Loading
Loading
Loading
Loading
+9 −32
Original line number Diff line number Diff line
@@ -163,10 +163,10 @@ public class IpClient extends StateMachine {
    // TODO: Find an lighter weight approach.
    private class LoggingCallbackWrapper extends Callback {
        private static final String PREFIX = "INVOKE ";
        private final Callback mCallback;
        private Callback mCallback;

        public LoggingCallbackWrapper(Callback callback) {
            mCallback = (callback != null) ? callback : new Callback();
            mCallback = callback;
        }

        private void log(String msg) {
@@ -524,13 +524,6 @@ public class IpClient extends StateMachine {
    private static final int EVENT_PROVISIONING_TIMEOUT           = 10;
    private static final int EVENT_DHCPACTION_TIMEOUT             = 11;

    // Internal commands to use instead of trying to call transitionTo() inside
    // a given State's enter() method. Calling transitionTo() from enter/exit
    // encounters a Log.wtf() that can cause trouble on eng builds.
    private static final int CMD_JUMP_STARTING_TO_RUNNING         = 100;
    private static final int CMD_JUMP_RUNNING_TO_STOPPING         = 101;
    private static final int CMD_JUMP_STOPPING_TO_STOPPED         = 102;

    private static final int MAX_LOG_RECORDS = 500;
    private static final int MAX_PACKET_RECORDS = 100;

@@ -1291,9 +1284,6 @@ public class IpClient extends StateMachine {

            resetLinkProperties();
            if (mStartTimeMillis > 0) {
                // Completed a life-cycle; send a final empty LinkProperties
                // (cleared in resetLinkProperties() above) and record an event.
                mCallback.onLinkPropertiesChange(new LinkProperties(mLinkProperties));
                recordMetric(IpManagerEvent.COMPLETE_LIFECYCLE);
                mStartTimeMillis = 0;
            }
@@ -1352,17 +1342,13 @@ public class IpClient extends StateMachine {
        public void enter() {
            if (mDhcpClient == null) {
                // There's no DHCPv4 for which to wait; proceed to stopped.
                deferMessage(obtainMessage(CMD_JUMP_STOPPING_TO_STOPPED));
                transitionTo(mStoppedState);
            }
        }

        @Override
        public boolean processMessage(Message msg) {
            switch (msg.what) {
                case CMD_JUMP_STOPPING_TO_STOPPED:
                    transitionTo(mStoppedState);
                    break;

                case CMD_STOP:
                    break;

@@ -1396,7 +1382,7 @@ public class IpClient extends StateMachine {
            }

            if (readyToProceed()) {
                deferMessage(obtainMessage(CMD_JUMP_STARTING_TO_RUNNING));
                transitionTo(mRunningState);
            } else {
                // Clear all IPv4 and IPv6 before proceeding to RunningState.
                // Clean up any leftover state from an abnormal exit from
@@ -1413,10 +1399,6 @@ public class IpClient extends StateMachine {
        @Override
        public boolean processMessage(Message msg) {
            switch (msg.what) {
                case CMD_JUMP_STARTING_TO_RUNNING:
                    transitionTo(mRunningState);
                    break;

                case CMD_STOP:
                    transitionTo(mStoppingState);
                    break;
@@ -1445,7 +1427,7 @@ public class IpClient extends StateMachine {
            return HANDLED;
        }

        private boolean readyToProceed() {
        boolean readyToProceed() {
            return (!mLinkProperties.hasIPv4Address() &&
                    !mLinkProperties.hasGlobalIPv6Address());
        }
@@ -1477,13 +1459,13 @@ public class IpClient extends StateMachine {

            if (mConfiguration.mEnableIPv6 && !startIPv6()) {
                doImmediateProvisioningFailure(IpManagerEvent.ERROR_STARTING_IPV6);
                enqueueJumpToStoppingState();
                transitionTo(mStoppingState);
                return;
            }

            if (mConfiguration.mEnableIPv4 && !startIPv4()) {
                doImmediateProvisioningFailure(IpManagerEvent.ERROR_STARTING_IPV4);
                enqueueJumpToStoppingState();
                transitionTo(mStoppingState);
                return;
            }

@@ -1491,14 +1473,14 @@ public class IpClient extends StateMachine {
            if ((config != null) && !applyInitialConfig(config)) {
                // TODO introduce a new IpManagerEvent constant to distinguish this error case.
                doImmediateProvisioningFailure(IpManagerEvent.ERROR_INVALID_PROVISIONING);
                enqueueJumpToStoppingState();
                transitionTo(mStoppingState);
                return;
            }

            if (mConfiguration.mUsingIpReachabilityMonitor && !startIpReachabilityMonitor()) {
                doImmediateProvisioningFailure(
                        IpManagerEvent.ERROR_STARTING_IPREACHABILITYMONITOR);
                enqueueJumpToStoppingState();
                transitionTo(mStoppingState);
                return;
            }
        }
@@ -1530,10 +1512,6 @@ public class IpClient extends StateMachine {
            resetLinkProperties();
        }

        private void enqueueJumpToStoppingState() {
            deferMessage(obtainMessage(CMD_JUMP_RUNNING_TO_STOPPING));
        }

        private ConnectivityPacketTracker createPacketTracker() {
            try {
                return new ConnectivityPacketTracker(
@@ -1564,7 +1542,6 @@ public class IpClient extends StateMachine {
        @Override
        public boolean processMessage(Message msg) {
            switch (msg.what) {
                case CMD_JUMP_RUNNING_TO_STOPPING:
                case CMD_STOP:
                    transitionTo(mStoppingState);
                    break;
+0 −15
Original line number Diff line number Diff line
@@ -69,8 +69,6 @@ import java.util.Set;

/**
 * Tests for IpManager.
 *
 * TODO: Rename to IpClientTest.
 */
@RunWith(AndroidJUnit4.class)
@SmallTest
@@ -113,18 +111,9 @@ public class IpManagerTest {
        verify(mNMService, times(1)).registerObserver(arg.capture());
        mObserver = arg.getValue();
        reset(mNMService);
        // Verify IpClient doesn't call onLinkPropertiesChange() when it starts.
        verify(mCb, never()).onLinkPropertiesChange(any());
        reset(mCb);
        return ipm;
    }

    private static LinkProperties makeEmptyLinkProperties(String iface) {
        final LinkProperties empty = new LinkProperties();
        empty.setInterfaceName(iface);
        return empty;
    }

    @Test
    public void testNullCallbackDoesNotThrow() throws Exception {
        final IpManager ipm = new IpManager(mContext, "lo", null, mNMService);
@@ -155,8 +144,6 @@ public class IpManagerTest {
        ipm.stop();
        verify(mNMService, timeout(100).times(1)).disableIpv6(iface);
        verify(mNMService, timeout(100).times(1)).clearInterfaceAddresses(iface);
        verify(mCb, timeout(100).times(1))
                .onLinkPropertiesChange(eq(makeEmptyLinkProperties(iface)));
    }

    @Test
@@ -206,8 +193,6 @@ public class IpManagerTest {
        ipm.stop();
        verify(mNMService, timeout(100).times(1)).disableIpv6(iface);
        verify(mNMService, timeout(100).times(1)).clearInterfaceAddresses(iface);
        verify(mCb, timeout(100).times(1))
                .onLinkPropertiesChange(eq(makeEmptyLinkProperties(iface)));
    }

    @Test