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

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

am 11954872: am 5af3405f: am ecda5461: Merge "Fix lease duration handling" into honeycomb-mr2

* commit '11954872':
  Fix lease duration handling
parents f3e3edb2 11954872
Loading
Loading
Loading
Loading
+18 −7
Original line number Diff line number Diff line
@@ -66,6 +66,9 @@ public class DhcpStateMachine extends StateMachine {
    private static final int DHCP_RENEW = 0;
    private static final String ACTION_DHCP_RENEW = "android.net.wifi.DHCP_RENEW";

    //Used for sanity check on setting up renewal
    private static final int MIN_RENEWAL_TIME_SECS = 5 * 60;  // 5 minutes

    private enum DhcpAction {
        START,
        RENEW
@@ -331,12 +334,20 @@ public class DhcpStateMachine extends StateMachine {

        if (success) {
            Log.d(TAG, "DHCP succeeded on " + mInterfaceName);
           long leaseDuration = dhcpInfoInternal.leaseDuration; //int to long conversion

           //Sanity check for renewal
           //TODO: would be good to notify the user that his network configuration is
           //bad and that the device cannot renew below MIN_RENEWAL_TIME_SECS
           if (leaseDuration < MIN_RENEWAL_TIME_SECS) {
               leaseDuration = MIN_RENEWAL_TIME_SECS;
           }
           //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() +
                    dhcpInfoInternal.leaseDuration * 480, //in milliseconds
                   leaseDuration * 480, //in milliseconds
                   mDhcpRenewalIntent);

            mController.obtainMessage(CMD_POST_DHCP_ACTION, DHCP_SUCCESS, 0, dhcpInfoInternal)