diff options
author | Irfan Sheriff <isheriff@google.com> | 2011-01-18 18:10:30 -0800 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2011-01-18 19:31:09 -0800 |
commit | 0c7e16450c9060551bd0bea6e08bc9fb2ba411b4 (patch) | |
tree | a6f4fac3999c1fd4a35bc7f579fa589b8aeca97e /wifi | |
parent | ec7c9ff0bb1c98cb8bec3ec7bdacbae3a434fa53 (diff) | |
download | frameworks_base-0c7e16450c9060551bd0bea6e08bc9fb2ba411b4.zip frameworks_base-0c7e16450c9060551bd0bea6e08bc9fb2ba411b4.tar.gz frameworks_base-0c7e16450c9060551bd0bea6e08bc9fb2ba411b4.tar.bz2 |
Fix soft Ap handling on system restart
When system server restarts, a soft AP
start can fail. Fix it by doing a stop
and start through netd.
Bug: 3236625
Change-Id: I95f31eb34a03b64cb7e2b6b8bdd56fc2119b605b
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 0548b4d..df21399 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -61,7 +61,6 @@ import android.os.WorkSource; import android.provider.Settings; import android.util.EventLog; import android.util.Log; -import android.util.Slog; import android.app.backup.IBackupManager; import android.bluetooth.BluetoothAdapter; import android.content.BroadcastReceiver; @@ -1671,10 +1670,18 @@ public class WifiStateMachine extends HierarchicalStateMachine { nwService.startAccessPoint((WifiConfiguration) message.obj, mInterfaceName, SOFTAP_IFACE); - } catch(Exception e) { - Log.e(TAG, "Exception in startAccessPoint()"); - sendMessage(obtainMessage(CMD_UNLOAD_DRIVER, WIFI_AP_STATE_FAILED, 0)); - break; + } catch (Exception e) { + Log.e(TAG, "Exception in softap start " + e); + try { + nwService.stopAccessPoint(); + nwService.startAccessPoint((WifiConfiguration) message.obj, + mInterfaceName, + SOFTAP_IFACE); + } catch (Exception ee) { + Log.e(TAG, "Exception during softap restart : " + ee); + sendMessage(obtainMessage(CMD_UNLOAD_DRIVER, WIFI_AP_STATE_FAILED, 0)); + break; + } } Log.d(TAG, "Soft AP start successful"); setWifiApState(WIFI_AP_STATE_ENABLED); @@ -2824,13 +2831,16 @@ public class WifiStateMachine extends HierarchicalStateMachine { mInterfaceName, SOFTAP_IFACE); } catch(Exception e) { - Log.e(TAG, "Exception in nwService during soft AP set"); + Log.e(TAG, "Exception in softap set " + e); try { nwService.stopAccessPoint(); + nwService.startAccessPoint((WifiConfiguration) message.obj, + mInterfaceName, + SOFTAP_IFACE); } catch (Exception ee) { - Slog.e(TAG, "Could not stop AP, :" + ee); + Log.e(TAG, "Could not restart softap after set failed " + ee); + sendMessage(obtainMessage(CMD_UNLOAD_DRIVER, WIFI_AP_STATE_FAILED, 0)); } - sendMessage(obtainMessage(CMD_UNLOAD_DRIVER, WIFI_AP_STATE_FAILED, 0)); } break; /* Fail client mode operation when soft AP is enabled */ |