[wfd-manager]:@Fix: Process the "DisconnectEvent" in Discovering State also. 26/69326/2
authorManeesh Jain <maneesh.jain@samsung.com>
Thu, 12 May 2016 13:39:29 +0000 (19:09 +0530)
committerManeesh Jain <maneesh.jain@samsung.com>
Fri, 13 May 2016 04:16:16 +0000 (21:16 -0700)
Change-Id: Ic01ce16cdc890ff97d553bcd0983d735a03abca9
Signed-off-by: Maneesh Jain <maneesh.jain@samsung.com>
src/wifi-direct-event.c

index ecf9106..3be59db 100755 (executable)
@@ -1099,8 +1099,12 @@ static void __wfd_process_sta_disconnected(wfd_manager_s *manager, wfd_oem_event
        }
        memcpy(peer_addr, peer->dev_addr, MACADDR_LEN);
 
-       /* If state is not DISCONNECTING, connection is finished by peer */
-       if (manager->state >= WIFI_DIRECT_STATE_CONNECTED) {
+       /* If state is not DISCONNECTING, connection is finished by peer.
+       *  Required the check also, when Device is Group Owner and state is DISCOVERING.
+       */
+       if (manager->state >= WIFI_DIRECT_STATE_CONNECTED ||
+                               (manager->state == WIFI_DIRECT_STATE_DISCOVERING &&
+                                manager->local->dev_role == WFD_DEV_ROLE_GO)) {
                wfd_group_remove_member(group, peer_addr);
                g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
                if (group->member_count) {