From ab00689b004ddb2594492d50406fb61a3f1bf8b9 Mon Sep 17 00:00:00 2001 From: Rebecca Silberstein Date: Wed, 9 May 2018 21:59:47 -0700 Subject: WifiServiceImpl: stop softap when ip config fails When IP Configuration fails for LOHS or tethering, make sure we clean up. (LOHS was cleaned up, but now also handle tethering mode.) Shutting down softap mode for tethering avoids leaving the user in an unworkable state where the wifi hotspot is up, but clients can't successfully connect. Bug: 79438789 Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: manually verified without fixes for b/79400794 Change-Id: Ia0a821262bdec0066c50b36694c5ed5cbfa0f82f --- service/java/com/android/server/wifi/WifiServiceImpl.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'service') diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java index eb1746e87..c2913ea73 100644 --- a/service/java/com/android/server/wifi/WifiServiceImpl.java +++ b/service/java/com/android/server/wifi/WifiServiceImpl.java @@ -966,10 +966,17 @@ public class WifiServiceImpl extends IWifiManager.Stub { LocalOnlyHotspotCallback.ERROR_INCOMPATIBLE_MODE); break; case WifiManager.IFACE_IP_MODE_CONFIGURATION_ERROR: - // there was an error setting up the hotspot... trigger onFailed for the - // registered LOHS requestors - sendHotspotFailedMessageToAllLOHSRequestInfoEntriesLocked( - LocalOnlyHotspotCallback.ERROR_GENERIC); + Slog.d(TAG, "IP mode config error - need to clean up"); + if (mLocalOnlyHotspotRequests.isEmpty()) { + Slog.d(TAG, "no LOHS requests, stop softap"); + stopSoftAp(); + } else { + Slog.d(TAG, "we have LOHS requests, clean them up"); + // there was an error setting up the hotspot... trigger onFailed for the + // registered LOHS requestors + sendHotspotFailedMessageToAllLOHSRequestInfoEntriesLocked( + LocalOnlyHotspotCallback.ERROR_GENERIC); + } updateInterfaceIpStateInternal(null, WifiManager.IFACE_IP_MODE_UNSPECIFIED); break; case WifiManager.IFACE_IP_MODE_UNSPECIFIED: -- cgit v1.2.3