summaryrefslogtreecommitdiffstats
path: root/core/java/android/net/DhcpStateMachine.java
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2011-09-16 22:03:09 -0700
committerIrfan Sheriff <isheriff@google.com>2011-09-16 22:03:09 -0700
commit2c08ede34ceb0f847cc9f996db9832f5358f8726 (patch)
tree739977e6a3a3cbd77f14aacd2ed38b6acf64a6cc /core/java/android/net/DhcpStateMachine.java
parent651cdfcbac6245f570475991588ddc2d30265e8d (diff)
downloadframeworks_base-2c08ede34ceb0f847cc9f996db9832f5358f8726.zip
frameworks_base-2c08ede34ceb0f847cc9f996db9832f5358f8726.tar.gz
frameworks_base-2c08ede34ceb0f847cc9f996db9832f5358f8726.tar.bz2
Retain DNS information from DHCP request
DHCP renewal can fail to fill DNS information. In such a case retain info from DHCP request Bug: 5314392 Change-Id: I2413f738be7c8c965ef9e7ffbc348e2738aa68b5
Diffstat (limited to 'core/java/android/net/DhcpStateMachine.java')
-rw-r--r--core/java/android/net/DhcpStateMachine.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/java/android/net/DhcpStateMachine.java b/core/java/android/net/DhcpStateMachine.java
index 445b2f7..79c9395 100644
--- a/core/java/android/net/DhcpStateMachine.java
+++ b/core/java/android/net/DhcpStateMachine.java
@@ -63,6 +63,9 @@ public class DhcpStateMachine extends StateMachine {
private PowerManager.WakeLock mDhcpRenewWakeLock;
private static final String WAKELOCK_TAG = "DHCP";
+ //Remember DHCP configuration from first request
+ private DhcpInfoInternal mDhcpInfo;
+
private static final int DHCP_RENEW = 0;
private static final String ACTION_DHCP_RENEW = "android.net.wifi.DHCP_RENEW";
@@ -335,9 +338,11 @@ public class DhcpStateMachine extends StateMachine {
if (dhcpAction == DhcpAction.START) {
Log.d(TAG, "DHCP request on " + mInterfaceName);
success = NetworkUtils.runDhcp(mInterfaceName, dhcpInfoInternal);
+ mDhcpInfo = dhcpInfoInternal;
} else if (dhcpAction == DhcpAction.RENEW) {
Log.d(TAG, "DHCP renewal on " + mInterfaceName);
success = NetworkUtils.runDhcpRenew(mInterfaceName, dhcpInfoInternal);
+ dhcpInfoInternal.updateFromDhcpRequest(mDhcpInfo);
}
if (success) {