summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server
diff options
context:
space:
mode:
Diffstat (limited to 'service/java/com/android/server')
-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 b8764cf..38d0ac8 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);