Modify group remove logic 95/167795/2
authorJiung <jiung.yu@samsung.com>
Mon, 22 Jan 2018 05:23:49 +0000 (14:23 +0900)
committerJiung Yu <jiung.yu@samsung.com>
Wed, 24 Jan 2018 08:19:07 +0000 (08:19 +0000)
Description: wfd_util_is_remove_group_allowed is needed in
group destroyed event and remove duplicated logic.

Change-Id: I0264d61605c13785c4fcdea74fad074fa9603e8d
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
packaging/wifi-direct-manager.spec
src/wifi-direct-event.c
src/wifi-direct-manager.c

index 6a10724..be959d7 100644 (file)
@@ -6,7 +6,7 @@
 
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.262
+Version:       1.2.263
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index 006f835..936b970 100644 (file)
@@ -1297,7 +1297,7 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
        }
 
        /* If there is no member, GO should be destroyed */
-       if (!group->member_count) {
+       if (!group->member_count && wfd_util_is_remove_group_allowed()) {
                wfd_oem_destroy_group(manager->oem_ops, group->ifname);
                wfd_destroy_group(manager);
                wfd_peer_clear_all(manager);
index fdd1fc7..6543207 100644 (file)
@@ -1125,10 +1125,6 @@ int wfd_manager_disconnect(wfd_manager_s *manager, unsigned char *peer_addr)
        WDS_LOGE("Succeeded to disconnect peer");
 
        wfd_group_remove_member(group, peer_addr);
-       if (!group->member_count) {
-               wfd_oem_destroy_group(manager->oem_ops, group->ifname);
-               wfd_destroy_group(manager);
-       }
 
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);