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

Commit a4644307 authored by Irfan Sheriff's avatar Irfan Sheriff Committed by Android Git Automerger
Browse files

am df1734e3: Fix lease duration handling

* commit 'df1734e3':
  Fix lease duration handling
parents 51377111 df1734e3
Loading
Loading
Loading
Loading
+19 −12
Original line number Diff line number Diff line
@@ -166,6 +166,9 @@ public class WifiStateTracker extends NetworkStateTracker {
     */
    private static final int DEFAULT_MAX_DHCP_RETRIES = 9;

    //Minimum dhcp lease duration for renewal
    private static final int MIN_RENEWAL_TIME_SECS = 5 * 60; //5 minutes

    private static final int DRIVER_POWER_MODE_AUTO = 0;
    private static final int DRIVER_POWER_MODE_ACTIVE = 1;

@@ -2507,13 +2510,7 @@ public class WifiStateTracker extends NetworkStateTracker {
                        if (NetworkUtils.runDhcp(mInterfaceName, mDhcpInfo)) {
                            event = EVENT_INTERFACE_CONFIGURATION_SUCCEEDED;
                            Log.d(TAG, "DHCP succeeded with lease: " + mDhcpInfo.leaseDuration);
                            //Do it a bit earlier than half the lease duration time
                            //to beat the native DHCP client and avoid extra packets
                            //48% for one hour lease time = 29 minutes
                            mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                                    SystemClock.elapsedRealtime() +
                                    mDhcpInfo.leaseDuration * 480, //in milliseconds
                                    mDhcpRenewalIntent);
                            setDhcpRenewalAlarm(mDhcpInfo.leaseDuration);
                       } else {
                            event = EVENT_INTERFACE_CONFIGURATION_FAILED;
                            Log.e(TAG, "DHCP request failed: " + NetworkUtils.getDhcpError());
@@ -2551,10 +2548,7 @@ public class WifiStateTracker extends NetworkStateTracker {
                                msg.sendToTarget();
                            }

                            mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                                    SystemClock.elapsedRealtime() +
                                    mDhcpInfo.leaseDuration * 480,
                                    mDhcpRenewalIntent);
                            setDhcpRenewalAlarm(mDhcpInfo.leaseDuration);
                        } else {
                            event = EVENT_INTERFACE_CONFIGURATION_FAILED;
                            Log.d(TAG, "DHCP renewal failed: " + NetworkUtils.getDhcpError());
@@ -2602,6 +2596,19 @@ public class WifiStateTracker extends NetworkStateTracker {
            return state == BluetoothHeadset.STATE_DISCONNECTED;
        }

        private void setDhcpRenewalAlarm(long leaseDuration) {
            //Do it a bit earlier than half the lease duration time
            //to beat the native DHCP client and avoid extra packets
            //48% for one hour lease time = 29 minutes
            if (leaseDuration < MIN_RENEWAL_TIME_SECS) {
                leaseDuration = MIN_RENEWAL_TIME_SECS;
            }
            mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                    SystemClock.elapsedRealtime() +
                    leaseDuration * 480, //in milliseconds
                    mDhcpRenewalIntent);
        }

    }
    
    private void checkUseStaticIp() {