From ec896c6a863b3cc0a55538a19879e2112b5b8658 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Wed, 15 Jun 2011 12:22:07 -0700 Subject: Reset connections AFTER we take down the network. If you do it before you have a race condition and some apps will manage to reconnect on the dieing network before it goes and then get no notification when it goes. bug: 3408025 Change-Id: I5386ff313c759b3f687bc38731454ab43dbe76b8 --- wifi/java/android/net/wifi/WifiStateMachine.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'wifi') diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 3cbf726..d10a5d8 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -1362,7 +1362,7 @@ public class WifiStateMachine extends StateMachine { intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT | Intent.FLAG_RECEIVER_REPLACE_PENDING); intent.putExtra(WifiManager.EXTRA_NETWORK_INFO, mNetworkInfo); - intent.putExtra(WifiManager.EXTRA_LINK_PROPERTIES, mLinkProperties); + intent.putExtra(WifiManager.EXTRA_LINK_PROPERTIES, new LinkProperties (mLinkProperties)); if (bssid != null) intent.putExtra(WifiManager.EXTRA_BSSID, bssid); mContext.sendStickyBroadcast(intent); @@ -1378,7 +1378,7 @@ public class WifiStateMachine extends StateMachine { private void sendLinkConfigurationChangedBroadcast() { Intent intent = new Intent(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); - intent.putExtra(WifiManager.EXTRA_LINK_PROPERTIES, mLinkProperties); + intent.putExtra(WifiManager.EXTRA_LINK_PROPERTIES, new LinkProperties(mLinkProperties)); mContext.sendBroadcast(intent); } @@ -1413,10 +1413,8 @@ public class WifiStateMachine extends StateMachine { Log.d(TAG, "Reset connections and stopping DHCP"); /* - * Reset connections & stop DHCP + * stop DHCP */ - NetworkUtils.resetConnections(mInterfaceName); - if (mDhcpStateMachine != null) { mDhcpStateMachine.sendMessage(DhcpStateMachine.CMD_STOP_DHCP); mDhcpStateMachine.quit(); @@ -1509,7 +1507,6 @@ public class WifiStateMachine extends StateMachine { if (!linkProperties.equals(mLinkProperties)) { Log.d(TAG, "Link configuration changed for netId: " + mLastNetworkId + " old: " + mLinkProperties + "new: " + linkProperties); - NetworkUtils.resetConnections(mInterfaceName); mLinkProperties = linkProperties; sendLinkConfigurationChangedBroadcast(); } @@ -2787,7 +2784,6 @@ public class WifiStateMachine extends StateMachine { if (mWifiInfo.getNetworkId() == result.getNetworkId()) { if (result.hasIpChanged()) { Log.d(TAG,"Reconfiguring IP on connection"); - NetworkUtils.resetConnections(mInterfaceName); transitionTo(mConnectingState); } if (result.hasProxyChanged()) { -- cgit v1.1