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

Commit adacedb1 authored by Lorenzo Colitti's avatar Lorenzo Colitti
Browse files

Notify success before configuring the IP address.

This ensures that IpManager has a complete copy of DHCP state
before configuring the IPv4 address. That way, when the netlink
notification of the IPv4 address arrives, we are guaranteed to
have all DHCP information (including DNS servers and routes)
available and we will never send the IPv4 address before the DNS
servers.

Bug: 27605330
Change-Id: I732424dfe2408be9e40028563e99d610b541e12d
parent c5be12e7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -724,6 +724,7 @@ public class DhcpClient extends StateMachine {
                    mOffer = null;
                    Log.d(TAG, "Confirmed lease: " + mDhcpLease);
                    setDhcpLeaseExpiry(packet);
                    notifySuccess();
                    transitionTo(mConfiguringInterfaceState);
                }
            } else if (packet instanceof DhcpNakPacket) {
@@ -794,7 +795,6 @@ public class DhcpClient extends StateMachine {
        @Override
        public void enter() {
            super.enter();
            notifySuccess();
            // TODO: DhcpStateMachine only supported renewing at 50% of the lease time,
            // and did not support rebinding. Now that the legacy DHCP client is gone, fix this.
            scheduleRenew();
@@ -850,6 +850,7 @@ public class DhcpClient extends StateMachine {
            if (!isValidPacket(packet)) return;
            if ((packet instanceof DhcpAckPacket)) {
                setDhcpLeaseExpiry(packet);
                notifySuccess();
                transitionTo(mDhcpBoundState);
            } else if (packet instanceof DhcpNakPacket) {
                transitionTo(mDhcpInitState);