Merge "Add support for infinite dhcp lease time"
This commit is contained in:
committed by
Android (Google) Code Review
commit
c15225f964
@@ -347,21 +347,25 @@ public class DhcpStateMachine extends StateMachine {
|
||||
|
||||
if (success) {
|
||||
if (DBG) Log.d(TAG, "DHCP succeeded on " + mInterfaceName);
|
||||
long leaseDuration = dhcpInfoInternal.leaseDuration; //int to long conversion
|
||||
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() +
|
||||
leaseDuration * 480, //in milliseconds
|
||||
mDhcpRenewalIntent);
|
||||
//Sanity check for renewal
|
||||
if (leaseDuration >= 0) {
|
||||
//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() +
|
||||
leaseDuration * 480, //in milliseconds
|
||||
mDhcpRenewalIntent);
|
||||
} else {
|
||||
//infinite lease time, no renewal needed
|
||||
}
|
||||
|
||||
mController.obtainMessage(CMD_POST_DHCP_ACTION, DHCP_SUCCESS, 0, dhcpInfoInternal)
|
||||
.sendToTarget();
|
||||
|
||||
Reference in New Issue
Block a user