am 41b35884: Revert "DO NOT MERGE Revert "Fix lease duration handling""

* commit '41b35884ff68a62f5fc8f65dcc26342d0889113d':
  Revert "DO NOT MERGE Revert "Fix lease duration handling""
This commit is contained in:
Irfan Sheriff
2011-06-22 11:10:16 -07:00
committed by Android Git Automerger

View File

@ -66,6 +66,9 @@ public class DhcpStateMachine extends StateMachine {
private static final int DHCP_RENEW = 0; private static final int DHCP_RENEW = 0;
private static final String ACTION_DHCP_RENEW = "android.net.wifi.DHCP_RENEW"; 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 { private enum DhcpAction {
START, START,
RENEW RENEW
@ -331,13 +334,21 @@ public class DhcpStateMachine extends StateMachine {
if (success) { if (success) {
Log.d(TAG, "DHCP succeeded on " + mInterfaceName); Log.d(TAG, "DHCP succeeded on " + mInterfaceName);
//Do it a bit earlier than half the lease duration time long leaseDuration = dhcpInfoInternal.leaseDuration; //int to long conversion
//to beat the native DHCP client and avoid extra packets
//48% for one hour lease time = 29 minutes //Sanity check for renewal
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, //TODO: would be good to notify the user that his network configuration is
SystemClock.elapsedRealtime() + //bad and that the device cannot renew below MIN_RENEWAL_TIME_SECS
dhcpInfoInternal.leaseDuration * 480, //in milliseconds if (leaseDuration < MIN_RENEWAL_TIME_SECS) {
mDhcpRenewalIntent); 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() +
leaseDuration * 480, //in milliseconds
mDhcpRenewalIntent);
mController.obtainMessage(CMD_POST_DHCP_ACTION, DHCP_SUCCESS, 0, dhcpInfoInternal) mController.obtainMessage(CMD_POST_DHCP_ACTION, DHCP_SUCCESS, 0, dhcpInfoInternal)
.sendToTarget(); .sendToTarget();