Handle group tear down only at group removed event

Handling group removal at disconnect causes issues where supplicant keeps
the group and then the next invocation fails

Bug: 7403755
Change-Id: Iea7e5ec98486607f8e2c4a55be3743e0545a9da7
This commit is contained in:
Irfan Sheriff
2012-10-24 13:34:31 -07:00
parent cd66855441
commit 2bc0c5fef2

View File

@@ -1566,9 +1566,17 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
WifiP2pManager.ERROR);
}
break;
/* The supplicant misses the group removed event at times and just
* sends a network disconnect event */
case WifiMonitor.NETWORK_DISCONNECTION_EVENT:
/* We do not listen to NETWORK_DISCONNECTION_EVENT for group removal
* handling since supplicant actually tries to reconnect after a temporary
* disconnect until group idle time out. Eventually, a group removal event
* will come when group has been removed.
*
* When there are connectivity issues during temporary disconnect, the application
* will also just remove the group.
*
* Treating network disconnection as group removal causes race conditions since
* supplicant would still maintain the group at that stage.
*/
case WifiMonitor.P2P_GROUP_REMOVED_EVENT:
if (DBG) logd(getName() + " group removed");
handleGroupRemoved();