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

Commit f36bde82 authored by Irfan Sheriff's avatar Irfan Sheriff
Browse files

DO NOT MERGE Dont let supplicant stay in DORMANT state

In some situations, the supplicant stays in a DORMANT
state. This prevents a connections to a network.

As long as the driver is started and we are not in scan-only
mode, issue a reconnect to get supplicant out of DORMANT
state.

Upon failures and network disable, supplicant should get
into an INACTIVE state.

Bug: 3236920
Change-Id: If32b5bfb7fea6c69c4a461db0b2012875b6273b5
parent e23212bc
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -1038,13 +1038,18 @@ public class WifiStateTracker extends NetworkStateTracker {
                        }
                        handleDisconnectedState(newDetailedState, true);
                        /**
                         * If we were associated with a network (networkId != -1),
                         * assume we reached this state because of a failed attempt
                         * to acquire an IP address, and attempt another connection
                         * and IP address acquisition in RECONNECT_DELAY_MSECS
                         * milliseconds.
                         * We should never let the supplicant stay in DORMANT state
                         * as long as we are in connect mode and driver is started
                         *
                         * We should normally hit a DORMANT state due to a disconnect
                         * issued after an IP configuration failure. We issue a reconnect
                         * after RECONNECT_DELAY_MSECS in such a case.
                         *
                         * After multiple failures, the network gets disabled and the
                         * supplicant should reach an INACTIVE state.
                         *
                         */
                        if (mRunState == RUN_STATE_RUNNING && !mIsScanOnly && networkId != -1) {
                        if (mRunState == RUN_STATE_RUNNING && !mIsScanOnly) {
                            sendMessageDelayed(reconnectMsg, RECONNECT_DELAY_MSECS);
                        } else if (mRunState == RUN_STATE_STOPPING) {
                            stopDriver();