summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHu Wang <huw@codeaurora.org>2016-05-30 14:23:27 +0800
committerSteve Kondik <steve@cyngn.com>2016-08-15 01:58:39 -0700
commit709a45986871c397b32913ef5fe4f9ae1781a50b (patch)
tree6f879ffd85cec0792e82dbd318a8bdcfe135868e
parent6d461a71c286611e9d8f22d93c9ad7e978f9d05b (diff)
downloadandroid_frameworks_opt_net_wifi-709a45986871c397b32913ef5fe4f9ae1781a50b.tar.gz
android_frameworks_opt_net_wifi-709a45986871c397b32913ef5fe4f9ae1781a50b.tar.bz2
android_frameworks_opt_net_wifi-709a45986871c397b32913ef5fe4f9ae1781a50b.zip
Wifi: Do full DHCP if framework roam to a new SSID
We used to do DHCP RENEW after framework roam succeeds. But if connected network changed, which means previous IPv4 address is not valid. Hence reset the roam flag to do Full DHCP in such case. Change-Id: I87352fa78f74c18f550cce36b343fec72e13a3e3 CRs-Fixed: 1021770
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index b8764cf61..38d0ac8b3 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -9197,6 +9197,18 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno
if (DBG) log("roaming and Network connection established");
mLastNetworkId = message.arg1;
mLastBssid = (String) message.obj;
+ /*
+ * We used to do DHCP RENEW after framework roam succeeds.
+ * But if connected network changed, which means previous IPv4
+ * address is not valid.
+ * Hence reset the roam flag to do full DHCP in such case.
+ */
+ if (mLastNetworkId != mWifiInfo.getNetworkId()) {
+ log("Connected network changed ->"
+ + " new nid=" + mLastNetworkId
+ + " old nid=" + mWifiInfo.getNetworkId());
+ mAutoRoaming = WifiAutoJoinController.AUTO_JOIN_IDLE;
+ }
mWifiInfo.setBSSID(mLastBssid);
mWifiInfo.setNetworkId(mLastNetworkId);
mWifiConfigStore.handleBSSIDBlackList(mLastNetworkId, mLastBssid, true);