diff options
author | Hu Wang <huw@codeaurora.org> | 2016-05-30 14:23:27 +0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-08-15 01:58:39 -0700 |
commit | 709a45986871c397b32913ef5fe4f9ae1781a50b (patch) | |
tree | 6f879ffd85cec0792e82dbd318a8bdcfe135868e | |
parent | 6d461a71c286611e9d8f22d93c9ad7e978f9d05b (diff) | |
download | android_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.java | 12 |
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); |