diff options
author | Irfan Sheriff <isheriff@google.com> | 2012-10-16 18:10:38 -0700 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2012-10-16 18:10:38 -0700 |
commit | edba852930bd2e9ab41f74f340595dafe500c756 (patch) | |
tree | f89302e1a8ef1483936a6935d73aa238decfa210 /wifi | |
parent | a30d969401a8533a5a341664421ba9b1e150bac3 (diff) | |
download | frameworks_base-edba852930bd2e9ab41f74f340595dafe500c756.zip frameworks_base-edba852930bd2e9ab41f74f340595dafe500c756.tar.gz frameworks_base-edba852930bd2e9ab41f74f340595dafe500c756.tar.bz2 |
Handle null BSSID
The root cause of why bssid needs investigation, but for now,
we can avoid crashing wifiwatchdog.
When bssid is null, just treat it as a good link.
Bug: 7357232
Change-Id: I080dfc990f3412646976cdc6ef75112ab093d326
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/java/android/net/wifi/WifiWatchdogStateMachine.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java b/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java index 9c727f9..c8f0712 100644 --- a/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java +++ b/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java @@ -556,8 +556,8 @@ public class WifiWatchdogStateMachine extends StateMachine { mLinkProperties = (LinkProperties) intent.getParcelableExtra( WifiManager.EXTRA_LINK_PROPERTIES); if (mPoorNetworkDetectionEnabled) { - if (mWifiInfo == null) { - if (DBG) logd("Ignoring link verification, mWifiInfo is NULL"); + if (mWifiInfo == null || mCurrentBssid == null) { + loge("Ignore, wifiinfo " + mWifiInfo +" bssid " + mCurrentBssid); sendLinkStatusNotification(true); } else { transitionTo(mVerifyingLinkState); @@ -726,7 +726,7 @@ public class WifiWatchdogStateMachine extends StateMachine { } private void handleRssiChange() { - if (mCurrentSignalLevel <= LINK_MONITOR_LEVEL_THRESHOLD) { + if (mCurrentSignalLevel <= LINK_MONITOR_LEVEL_THRESHOLD && mCurrentBssid != null) { transitionTo(mLinkMonitoringState); } else { // stay here @@ -920,11 +920,15 @@ public class WifiWatchdogStateMachine extends StateMachine { if (DBG) logd("########################################"); if (isGood) { mWsmChannel.sendMessage(GOOD_LINK_DETECTED); - mCurrentBssid.mLastTimeGood = SystemClock.elapsedRealtime(); - logd("Good link notification is sent"); + if (mCurrentBssid != null) { + mCurrentBssid.mLastTimeGood = SystemClock.elapsedRealtime(); + } + if (DBG) logd("Good link notification is sent"); } else { mWsmChannel.sendMessage(POOR_LINK_DETECTED); - mCurrentBssid.mLastTimePoor = SystemClock.elapsedRealtime(); + if (mCurrentBssid != null) { + mCurrentBssid.mLastTimePoor = SystemClock.elapsedRealtime(); + } logd("Poor link notification is sent"); } } |