From 27827bab181b332387b6a043df430c7b1243c507 Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Fri, 8 Oct 2010 10:25:40 -0700 Subject: [PATCH] fix getmacaddress race condition (don't auto-merge) getMacAddress wont go through if the wifi state is not enabled by the time the connection from the supplicant comes through. we now fetch the mac address right after a driver start. Bug: 3072163 Change-Id: I55943e6d618fd7c3170bc579697bc61d70fc8b86 --- .../android/net/wifi/WifiStateTracker.java | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java index 9d27bde124c72..281077c74b6ff 100644 --- a/wifi/java/android/net/wifi/WifiStateTracker.java +++ b/wifi/java/android/net/wifi/WifiStateTracker.java @@ -862,15 +862,7 @@ public class WifiStateTracker extends NetworkStateTracker { mIsAnyNetworkDisabled.set(false); requestConnectionInfo(); SupplicantState supplState = mWifiInfo.getSupplicantState(); - /** - * The MAC address isn't going to change, so just request it - * once here. - */ - String macaddr = getMacAddress(); - if (macaddr != null) { - mWifiInfo.setMacAddress(macaddr); - } if (LOCAL_LOGD) Log.v(TAG, "Connection to supplicant established, state=" + supplState); // Wi-Fi supplicant connection state changed: @@ -1289,6 +1281,10 @@ public class WifiStateTracker extends NetworkStateTracker { */ setNumAllowedChannels(); synchronized (this) { + String macaddr = WifiNative.getMacAddressCommand(); + if (macaddr != null) { + mWifiInfo.setMacAddress(macaddr); + } if (mRunState == RUN_STATE_STARTING) { mRunState = RUN_STATE_RUNNING; if (!mIsScanOnly) { @@ -2009,18 +2005,6 @@ public class WifiStateTracker extends NetworkStateTracker { return WifiNative.getLinkSpeedCommand(); } - /** - * Get MAC address of radio - * - * @return MAC address, null on failure - */ - public synchronized String getMacAddress() { - if (mWifiState.get() != WIFI_STATE_ENABLED || isDriverStopped()) { - return null; - } - return WifiNative.getMacAddressCommand(); - } - /** * Start driver *